: ) wonderful world ( :

the metasyntactic variable

Archive for August 2007

without comments

(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>

Written by grault

August 14, 2007 - 10:56 pm at August 14, 2007 - 10:56 pm