在Scheme中定义为(定义大小2)时,什么类型的变量是大小?

时间:2015-07-26 20:44:24

标签: scheme lambda-calculus

对于Scheme,我知道变量是绑定的还是空闲的。这对我来说很有意义,但仅限于我们在讨论作为程序形式参数的变量的时候。绑定变量是作为形式参数绑定到过程的变量,因此其范围是过程,并且可以更改变量的名称而不会影响任何内容。自由变量是一个未在一个过程的上下文中绑定的变量,但是它绑定在某个包含过程中。我理解这一点,但是当我们将变量定义为不是形式参数,而是作为值的容器,即(define size 2)时,如果它不是过程的形式参数,那么大小如何被约束或释放?

1 个答案:

答案 0 :(得分:1)

Size绑定在交互式Scheme系统的顶层,也称为REPL。

在R7RS之前的Scheme标准中,几乎没有关于顶级的所有内容。 REPL在R7RS报告第5.7节中的方案标准中首次被提及,但指定的所有内容都是"可能"而不是"应该"所以它不是真正的标准,更多的是方便,而且大多数Scheme实现都以某种方式扩展了顶层。

因此,像(define size 2)这样的顶级定义会在顶层绑定size,并在从顶层继承的任何内容中绑定。{/ p>