我在Common Lisp中创建了这个函数
(defun f (&key n p x)
(* (combinacion n x) (expt p x) (expt (- 1 p) (- n x))))
它工作正常。问题是我想在Common Lisp湖中使用以下Haskell函数
ff n p x = sum . map (f n p) $ [0 .. x]
namley,将部分应用于列表的函数f
映射。
我创建了以下函数来创建列表
(defun range (&key max (min 0) (step 1))
(loop for n from min to max by step
collect n))
并且工作正常,我只需要知道如何进行映射。
答案 0 :(得分:7)
Common Lisp没有内置的部分应用程序,你只需编写一个lambda表达式来做你想做的事。
(defun map-f (n p limit)
(let ((x-list (range :max limit)))
(mapcar #'(lambda (x) (f :n n :p p :x x)) x-list)))