这是for
Racket中循环的示例:
(define List '(1 2 3))
(for ((I List))
(displayln I)
)
在“方案/球拍”中,用于环绕某事物的单括号对用于评估。但是for
上面的循环形式采用了第一个参数,((I List))
该参数包装在双括号对中。
看起来像:
(I List)
I List
在双括号中进行这种评估的实际,理论意义是什么?
这是绑定的序列,而不是函数调用。
(let* ((x 1) (y 2) (z 3)) ; <-- sequence of bindings
(displayln (+ x y z)))
类似地:
(for ((x '(1 2 3)) (y '(3 2 1))) ; <-- like above
(displayln (+ x y)))
从理论上讲,要么是语言对它们的解析方式有所不同,要么它们扩展为其他形式(宏)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句