“球拍参考”部分11.9扩展顶级表单和13.2评估和编译使用术语“顶级表单”和功能描述(eval top-level-form [nm])参考手册中的strong>和(展开顶级形式)将“顶级形式”作为其功能参数,但我不清楚“顶级形式”的定义”。 Racket语言中“顶级形式”一词的含义是什么?
答案 0 :(得分:3)
这里的直觉是这些函数都处理“顶级形式”而不是依赖于词汇环境的形式。作为一个半明显的例子,eval
只能处理顶级表单,这就是为什么:
(let ([x 10])
(eval '(* 3 x)))
不起作用。通常只使用“表单”来讨论任何形式,例如对宏的输入 - 当然可以有这样的引用。
答案 1 :(得分:1)
我现在在“球拍参考手册”第1.2.3.1节中找到了一种Backus-Naur格式的顶级形式的精确定义
http://docs.racket-lang.org/reference/syntax-model.html#(part._fully-expanded)