美文网首页
Lisp语言的核心是什么

Lisp语言的核心是什么

作者: aubell | 来源:发表于2022-06-20 12:38 被阅读0次

    这个世界上,编程语言层出不穷。Lisp语言被称作一个高峰(另一个高峰是c语言)。

    那么,Lisp语言最核心的内容是什么?

    阅读古老的文献,或者尝试动手写个Lisp的解释器,就会发现,Lisp最核心的内容是λ演算

    Lisp编写的程序具有许多的括号,这些括号表示的是S表达式。λ演算基于S表达式来实现。数学上的λ演算很难阅读,因为常常省略括号,使用某种默认的次序来结合。而阅读基于S表达式的λ演算就容易的多,因为括号多,所以次序看的清楚很多。

    实现S表达式,则用满屏的car和cdr,以及cons。

    编程语言最核心的东西是分支和循环。这一点从世界上最精简的语言之一BrainFK可以看出来。

    原始的Lisp用cond实现分支,用Label配合λ演算实现递归(可以完成循环)。后来人们发现,不用Label,单纯用λ演算就可以实现递归,如著名的Y组合子。cond 可以用更简单的 if 表达式代替。

    Lisp中,数据与程序的表示是一致的。可以用quote把程序当成数据;可以用eval把数据当成程序。

    空表,表尾,逻辑假都用nil来表示。

    判断是否为空,用null函数。

    判断是否相等,用eq函数。

    在最精简的设计下,完成了分支、S表达式;

    在S表达式的方式下,实现了λ演算;

    在λ演算的基础上实现了递归;

    在递归的基础上完成了全局的eval函数。

    某些实现则用eval和apply交互调用,像太极图一样,阴阳消息。

    λ演算是Lisp语言的核心

    (指针是c语言的核心。)

    (抽象是编程方法的核心。)

    相关文章

      网友评论

          本文标题:Lisp语言的核心是什么

          本文链接:https://www.haomeiwen.com/subject/cmcjvrtx.html