我有一个任务,我必须定义一个表达式的别名,在其中一个指南中,我们被告知使用setf或列表列表来定义它们。更具体地说,我们需要给别名ADD/SUCC/PRED/etc赋值,例如,(ADD := (λm n f x.n f (m F X)<-。
这样,在任何给定的操作中用别名替换它们之后,我们就可以操作它们了。由于我没有找到任何clare的解释,我也不知道如何继续使用setf,如果你们中的任何人能给我一个提示,我会发现这真的很有帮助。
到目前为止,为了改变值,我使用了条件条件,如果有任何符号等于我需要替换的单词,它就会这样做,但我看起来效率不高。
发布于 2021-01-09 13:04:39
setf是一个常用的Lisp宏。它不存在于DrRacket提供的默认语言中。
你可能指的是set!、set-car!或set-cdr!,如果你真的想说它应该与球拍一起工作,这是一个方案的后代。
因为球拍有很多级别的抽象,您可以在其中实现任何表面语法,所以实现Common Lisp并不遥远,然后您当然应该能够使用setf :-)
https://stackoverflow.com/questions/65638200
复制相似问题