我在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))
而且效果也很好,我只需要知道如何进行映射即可。
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)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句