Archive for August 2007
(defun compose (&rest funs)
(if (null funs)
(lambda (k) k)
(lambda (k)
(funcall (car funs)
(funcall (apply #'compose (cdr funs)) k)))))
CL-USER> (funcall (compose (lambda (k) (* k 2)) (lambda (k) (sqrt k))) 2) 2.828427 CL-USER> (funcall (compose (lambda (k) (* k 2))) 2) 4 CL-USER> (funcall (compose) 2) 2 CL-USER>