什么是 setf,它是 Dr.Racket 中的有效函数吗?

我有一个任务,我必须为表达式定义别名,在其中一个指南中,我们被告知使用 setf 或列表列表来定义它们。更具体地说,我们需要为别名 ADD/SUCC/PRED/etc 分配它们的 lambda 演算值,例如 ---> (ADD := (λ mnf x. nf (mfx)))

这样,所以在任何给定的操作中用别名替换它们之后,我们就可以操作它们了。由于我没有找到任何克莱尔的解释,我也不知道如何使用 setf,如果你们中的任何人能给我一个提示,我会发现它真的很有帮助。

到目前为止,要更改我使用的条件值,如果任何符号等于我需要替换的单词,它就会这样做,但我似乎效率不高。

gary1968 回答:什么是 setf,它是 Dr.Racket 中的有效函数吗?

setf 是一个 Commmon Lisp 宏。它在 DrRacket 提供的默认语言中不存在。

如果您的意思是它应该与 Racket 一起使用,那么您可能指的是 set!set-car!set-cdr!,后者是 Scheme 的继承者。

因为 Racket 有很多抽象层次,以至于您可以在其中真正实现任何表面语法,所以可以实现 Common Lisp 并不遥远,然后您当然应该能够使用 {{1} } :-)

本文链接:https://www.f2er.com/1131120.html

大家都在问