Skip to content

Instantly share code, notes, and snippets.

@clarkema
Created March 6, 2016 14:54
Show Gist options
  • Select an option

  • Save clarkema/f04c78266809cb9b3311 to your computer and use it in GitHub Desktop.

Select an option

Save clarkema/f04c78266809cb9b3311 to your computer and use it in GitHub Desktop.
;; Lisp
(defun counter ()
(let ((i 0))
(lambda () (incf i))))
(setf indexer (counter))
(funcall indexer) => 1
(funcall indexer) => 2
(funcall indexer) => 3
# Perl
sub counter {
my $i = 0;
return sub {++$i};
}
my $indexer = counter();
print $indexer->(); # 1
print $indexer->(); # 2
print $indexer->(); # 3
@clarkema
Copy link
Author

clarkema commented Mar 6, 2016

(defun make-check (name)
       (lambda (x) (equal name x)))

(setf (symbol-function 'check-paul) (make-check "Paul"))

(check-paul "Bob") => nil 

(check-paul "Paul") => t

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment