RosettaCodeData/Task/Partial-function-application/Common-Lisp/partial-function-application.lisp

21 lines
442 B
Common Lisp
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
(defun fs (f s)
(mapcar f s))
(defun f1 (i)
(* i 2))
(defun f2 (i)
(expt i 2))
2013-04-10 23:57:08 -07:00
(defun partial (func &rest args1)
2015-02-20 00:35:01 -05:00
(lambda (&rest args2)
(apply func (append args1 args2))))
(setf (symbol-function 'fsf1) (partial #'fs #'f1))
(setf (symbol-function 'fsf2) (partial #'fs #'f2))
2013-04-10 23:57:08 -07:00
(dolist (seq '((0 1 2 3) (2 4 6 8)))
2015-02-20 00:35:01 -05:00
(format t
"~%seq: ~A~% fsf1 seq: ~A~% fsf2 seq: ~A"
seq
(fsf1 seq)
(fsf2 seq)))