计划/球拍中的双括号是什么?

达丁胡克

这是forRacket循环的示例

(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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章