估计很多人都看过《黑客与画家》这本书,这本书主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。作者保罗格雷厄姆字里行间不经意间向大家推介Lisp是最好的编程语言。
Lisp特色
Lisp确实是非常有特色编程语言,它的速度像C一样快,但是它又像python那样像是解释执行;Lisp可以写实时写代码的代码并实时运行这段写代码的代码。很多人刚开始接触python的时候对强制空格对齐深恶痛绝,但跟lisp的括号比,那就是小巫见大巫。
Lisp方言
Lisp还有一个特色就是它的方言版本特别多,这在其它语言都不太常见。其它语言可能也有多种,比如basic有True BASIC、Turbo BASIC、QBasic、Visual Basic等多种,但是在某一时间之内,大约只有1-2个最流行,而且不同basic之间尽管差别很大,关键字还是比较一致的。而Lisp却不这样,它的多个方言同时并存,而且它的方言之间差别很大,除了少数几个关键字相同其它关键字可以完全不同,可以说除了是Lisp语言的方言这一共同点之外,各方言可以是完全不同的语言。
当前流行的Lisp语言方言
- Common Lisp:Common Lisp是LISP语言的一种标准化形式,旨在提供一种跨多种平台和实现的通用LISP方言。它拥有丰富的功能和广泛的应用,特别是在科学计算、人工智能和符号计算等领域。Common Lisp具有强大的宏系统,允许用户定义新的语法和操作符,从而极大地扩展了语言的能力。它也是保罗格雷厄姆以前最推崇的LISP语言。
- Scheme:Scheme是LISP语言的一个简洁且一致的方言,强调代码的可读性和可移植性。它具有静态作用域和词法闭包,以及一个简单而强大的宏系统。Scheme在教育和研究领域非常受欢迎,也是许多编程语言和工具的基础,如Racket和Guile。
- Emacs Lisp:Emacs Lisp是与Emacs文本编辑器紧密相关的LISP方言。Emacs本身是用LISP编写的,因此Emacs Lisp允许用户通过编写自定义的LISP代码来扩展和定制Emacs的功能。这使得Emacs成为一个高度可配置和可扩展的文本编辑器,深受程序员和黑客的喜爱。
- ARC:ARC是保罗格雷厄姆为探索性编程而设计的:你可以通过编写它来决定要写什么。探索性编程的一个好处是使程序简短且具有延展性。可惜的是这个语言好像并没有推广开来,而且保罗格雷厄姆也不像以前那样投入精力在ARC了。
- HY:HY是一种提供了对Python内置库和第三方Python库直接访问功能的LIsp方言。它同时允许自由混合命令式、函数式和面向对象的编程风格。比如我们可以使用HY语言驱动飞桨进行人工智能的训练和推理,可参见这篇文档:用Lisp的方言HY跑飞桨训练和推理_hy lisp-CSDN博客
也可以尝试使用python写一个简单的LISP解释器,参考:编程奇妙之旅:使用Python写一个Lisp语言的解释器_lisp 解释器-CSDN博客