Lisp-1和Lisp-2

Lisp-1

Lisp-1所指的模型是,变量和函数的命名空间是同一个,没有区分。Scheme和Clojure是采用这种命名空间,绝大部分当现代的计算机语言也是使用该方案,包括C语言。

#include<stdio.h>
#include<string.h>
int a = 1;
int a()
{
    return 2;
}

int main()
{
    int *p = &a;
    return 0;
}

这段代码是无法通过编译的。


Lisp-2

Lisp-2使用的是,变量和函数命名空间分离的方式,区别对待函数和变量名字。CommonLisp就是采用这种命名空间方案。



你可能感兴趣的:(命名空间,lisp)