我正在生成如下列表,其中包含运算符、数字和参数:
'(* (+ 3 param1) param2)
我想用不同的参数进行评估和测试。但仔细阅读后,如果我使用 eval
过程,我似乎无法在运行时更改这些值。
有没有一种干净的方法可以做到这一点?
最佳答案
这是一个替代方案,使用 quasiquoting :
(eval `(* (+ 3 ,param1) ,param2))
在上面的行中,两个参数将在运行时在调用eval
之前进行评估。例如:
(define param1 42)
(define param2 43)
(eval `(* (+ 3 ,param1) ,param2))
=> 1935
关于list - 使用参数评估 Racket 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797147/