<cl> (defun test (x y) (print (list x y)) (+ x y)) TEST <cl> (test 1 2) (1 2) 3 <cl> (function test) (LAMBDA (X Y) (BLOCK TEST (PRINT (LIST X Y)) (+ X Y))) <cl> (funcall (function test) 1 2) (1 2) 3 <cl> #'test (LAMBDA (X Y) (BLOCK TEST (PRINT (LIST X Y)) (+ X Y))) <cl> (funcall #'test 2 3) (2 3) 5 <cl> (apply #'test '(2 3)) (2 3) 5ラムダ式を直接,funcallやapplyに与えることもできます.
<cl> ((lambda (x) (list x)) 2) (2) <cl> (setq a '(lambda (x) (list x))) (LAMBDA (X) (LIST X)) <cl> (funcall a 2) (2) <cl> (setq a #'(lambda (x) (list x))) (LAMBDA (X) (LIST X)) <cl> (setq b '(lambda (x) (list x))) (LAMBDA (X) (LIST X)) <cl> (equal a b) T <cl> (setq c #'(lambda (y) (list y))) (LAMBDA (Y) (LIST Y)) <cl> (funcall a 1) (1) <cl> (funcall b 1) (1) <cl> (funcall c 1) (1) <cl> (eq a b) NIL <cl> (equal a b) T <cl> (equal a c) NILという具合に,ラムダ式は,リストデータと同じように扱うことができます.