我一直在研究用于定义语法规则的语法,但是我仍然被困住了。
我想用这个签名来定义一个规则:(定义-语法-规则(用于{val in lst}返回res)。
基本上,它只是应用地图,给定一个val和一个lst。但我很难理解语法。这就是我到目前为止想出来的..。……(语法-rules () (用于val in lst) (map (val Lst)
输入的内容如下:
(对于{val '(0 1 2 3 4)}返回(- val 1) )
和输出(-1 0 1 2 3),就像在列表中调用了map一样。
发布于 2013-09-20 01:27:44
这件事完成了:
(define-syntax for
(syntax-rules (in return)
((for val in list return exp)
(map (lambda (val) exp) list))))
> (for x in '(0 1 2 3) return (- x 1))
(-1 0 1 2)从本质上说,这正是您所描述的。您需要将in和return声明为文本。
https://stackoverflow.com/questions/18907082
复制相似问题