标签:
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使用的是,变量和函数命名空间分离的方式,区别对待函数和变量名字。CommonLisp就是采用这种命名空间方案。
标签:
原文地址:http://my.oschina.net/u/236698/blog/519220