把 Common Lisp 的一些基本部分看完了,小小记录一下。
一路学来,跟其他语言相比,只能体会到一些不同,但对这些不同的好处还没什么很深的感受。
首先是语法,这个写习惯了就好。其次就是变量名了,它几乎可以使用任何符号,一些内置的名字也可以通过包来避免冲突。但其还是有命名规范的,如动态变量首尾的「*」,使用「-]连接单词等。变量名和函数名,还有类名,因为处在不同的名字空间,可以取相同的名字。
函数的多种参数给了我们很大的操作性,但是宏的能力更强,也是 Lisp 与其他语言最大的不同。可惜的是它的魅力只在书上的例子中体会到了一点,自己的话,或许等遇到了合适的问题才会想起来要用吧。能生成代码的代码,还是很令人想试试的。
数据类型的话,表面上的都差不多。而复杂了许多的就是文件操作了。读和写不会很复杂,但是为了可移植性,一堆复杂的东西冒出来。不过其中有一些是针对比较老的文件系统,可以不理。
还有两个就是特殊操作符和包了。Common Lisp 的包与 Java 或 Python 包都可以封装代码,但 Lisp 的包要复杂许多。特殊操作符「提供了通向语言底层机制的足够权限」,有了它们,我们更容易写出我们想要的代码。
那么现在,可以好好玩玩 Lisp 了。嗯,跟着前辈们玩,自己还不会开车。
领取专属 10元无门槛券
私享最新 技术干货