Amm*_*mar 2 lisp scheme functional-programming
有没有办法制作一个包含函数的列表?我要做的是,列出一些算术运算符, (+ - * /)
这样我就可以轻松地操纵它们的顺序并将它们应用到数字列表中.
所以,如果我有这个列表,我会像这样使用它:
(apply (map (lambda (x)
x)
'(+ - * /))
'(1 2 3 4))
Run Code Online (Sandbox Code Playgroud)
我是一名新手程序员,所以如果有更好的方法来进行此类操作,我们非常感谢您的建议.
Rai*_*wig 10
列表使用LIST功能.
(list 1 2 3)
(list + - * /)
Run Code Online (Sandbox Code Playgroud)
应用符号列表毫无意义:
(apply (map (lambda (x) x) '(+ - * /)) '(1 2 3 4))
Run Code Online (Sandbox Code Playgroud)
会(应用一系列功能仍然没有意义):
(apply (map (lambda (x) x) (list + - * /)) '(1 2 3 4))
Run Code Online (Sandbox Code Playgroud)
简化(仍然错误):
(apply (list + - * /) '(1 2 3 4))
Run Code Online (Sandbox Code Playgroud)
但是,也许你想要这个:
(map (lambda (f)
(apply f '(1 2 3 4)))
(list + - * /))
Run Code Online (Sandbox Code Playgroud)
在Common Lisp中:
(mapcar #'(lambda (f)
(apply f '(1 2 3 4)))
(list #'+ #'- #'* #'/))
Run Code Online (Sandbox Code Playgroud)
返回:
(10 -8 24 1/24)
Run Code Online (Sandbox Code Playgroud)