Lisp 不使用';我不能评价他的论点
在我的家庭作业中,我有一个用C编写的小列表解释器,其中已经编码了一些函数:Lisp 不使用';我不能评价他的论点,lisp,operator-precedence,Lisp,Operator Precedence,在我的家庭作业中,我有一个用C编写的小列表解释器,其中已经编码了一些函数:set、cons、car、cdr和quote 我必须添加另外6个我选择的函数。3个带参数评估,3个不带参数评估。 通过评估,我选择:eq,+和-1, 但是我不知道接下来的第3步,什么样的Lisp函数在没有参数求值的情况下是有用的?需要延迟求值 始终对lisp的所有参数求值 事实并非如此 对于 以及, 其中之一,, 您已经实现了 延迟评估有用时的标准示例是: (if (under-attack-p) (launch-
set
、cons
、car
、cdr
和quote
我必须添加另外6个我选择的函数。3个带参数评估,3个不带参数评估。
通过评估,我选择:eq
,+
和-1
,
但是我不知道接下来的第3步,什么样的Lisp函数在没有参数求值的情况下是有用的?需要延迟求值
始终对lisp的所有参数求值
事实并非如此
对于
以及,
其中之一,,
您已经实现了
延迟评估有用时的标准示例是:
(if (under-attack-p)
(launch-missiles)
(print "Peace!"))
我对他的论点进行了评估,
那我们就
打印
),否则返回发射导弹的值
if
计算其第一个参数并
决定基于该值计算其他两个参数中的哪一个
另见
我的建议是:
- --迭代
- --有条件的
- 或者——绑定
(if (under-attack-p)
(launch-missiles)
(print "Peace!"))
我对他的论点进行了评估,
那我们就
打印
),否则返回发射导弹的值
if
计算其第一个参数并
决定基于该值计算其他两个参数中的哪一个
另见
我的建议是:
- --迭代
- --有条件的
- 或者——绑定
cond
,它不会像函数一样计算其参数。也许您可以为控制流实现一些其他特殊形式。也许您可以实现defun
。为什么要标记common lisp?您正在制作双名称空间lisp吗?动态范围的词汇范围?在决定除了if
这是一个扣篮之外还要实现哪些特殊形式之前,我会先决定这两种形式。如果不计算参数,那么您需要一个不计算其参数的宏或特殊形式。也许您可以实现cond
,它不会像函数一样计算其参数。也许您可以为控制流实现一些其他特殊形式。也许您可以实现defun
。为什么要标记common lisp?您正在制作双名称空间lisp吗?动态范围的词汇范围?在决定除了if
这是一个扣篮之外,还应该实施哪些特殊形式之前,我会先决定这两种形式。