functional-programming - 函数列表

标签 functional-programming lisp scheme

有没有办法制作一个包含函数的列表?我想做的是,列出一些算术运算符 (+ - */) 以便我可以轻松地操纵它们的顺序并将它们应用于数字列表。

所以,如果我有那个列表,我会像这样使用它:

(apply (map (lambda (x)
              x)
            '(+ - * /))
       '(1 2 3 4))

我是一个新手程序员,所以如果有更好的方法来做这样的操作,非常感谢你的建议。

最佳答案

列表是用函数 LIST 创建的。

(list 1 2 3)

(list + - * /)

应用符号列表没有意义:

(apply (map (lambda (x) x) '(+ - * /)) '(1 2 3 4))

会是(应用函数列表仍然没有意义):

(apply (map (lambda (x) x) (list + - * /)) '(1 2 3 4))

简化(仍然错误):

(apply (list + - * /) '(1 2 3 4))

但是,也许你想要这个:

(map (lambda (f)
       (apply f '(1 2 3 4)))
     (list + - * /))

在普通 Lisp 中:

(mapcar #'(lambda (f)
            (apply f '(1 2 3 4)))
        (list #'+ #'- #'* #'/))

返回:

(10 -8 24 1/24)

关于functional-programming - 函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960207/

相关文章:

list - Lisp 4 行游戏

lisp - 普通 lisp 中的子列表

lisp - 一个简单的 lisp 函数

functional-programming - 替换符号表达式中的符号

f# - 从 F# 连接到 Oracle

oop - 函数式编程语言和命令式编程语言有什么区别?

scala - 如何跟踪不可变设计的依赖关系?

scheme - Scheme 中的斐波那契数列流

list - 方案:列表的CAR和CDR

ruby - 是否存在与 Perl 或 Ruby 中的触发器运算符等效的函数式编程概念?