scheme - 只评估第一个符号(鸡肉方案)

标签 scheme eval chicken-scheme

如何仅通过第一项评估 s 表达式?

(define (fn x y) (print x) (print y))
(eval '(fn a b))

我试图在更大的表达式上评估这样的东西,但解释器提示 ab变量不存在(未绑定(bind)变量 a)。

有什么办法可以让符号保持原样吗?

我一直在尝试查找有关此的信息,但在任何地方都找不到。

最佳答案

下面的呢?

(let ((expr '(fn a b)))
  (cons (eval (car expr)) (cdr expr)))

但请注意,如果您必须依赖 eval ,你几乎可以肯定做错了。

关于scheme - 只评估第一个符号(鸡肉方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565489/

相关文章:

recursion - 这个 Racket 程序是如何使用 add1 的?

android - Dalvik 中的评估函数

javascript - 如何使用 iPhone SDK 评估 javascript 代码?

Chicken Scheme 中的命名空间

在鸡计划中过滤未绑定(bind)。为什么?

emacs - emacs 的 Racket Flymake 模式

lisp - "Freeing The Essence Of Computing"是用什么语言写的?

python - 在 *args 中传递一个元组

scheme - Chicken计划中的生成器

string - 将Scheme表达式转换为字符串