我是Scheme和函数式编程的新手,我只是开始写一些更复杂的东西。我想知道是否可以根据存储在列表中的过程来定义函数。
假设我们有以下列出代表程序(+ 2 3)和(* 3 4)的其他清单:
'((+ 2 3) (* 3 4))
现在我想写一些代表过程的任何列表(例如(+ 2 3)),并根据它定义一个我以后可以使用的函数。
所以,如果我选择(+ 2 3),我希望声明以下函数:
(define (funct_name) (+ 2 3))
所以基本上,我正在寻找的是一个定义其他函数的函数,它必须在脚本中编写。那么也许是这样的?
(define (def_functions_fromlist) ls) ;this would define the function
;corresponding to procedure in ls
提前谢谢你,如果我在这里感到困惑,我很抱歉。
答案 0 :(得分:1)
返回一个评估列表的匿名函数,如下所示:
(define (def-prod-from ls)
(lambda () (eval ls)))
这适用于任何输入,而不仅仅是列表。这可能是一个问题,但可能不是。