美文网首页
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语言的核心是什么

    这个世界上,编程语言层出不穷。Lisp语言被称作一个高峰(另一个高峰是c语言)。 那么,Lisp语言最核心的内容是...

  • lisp语言

    Lisp语言是最简洁有效的编程语言。主要原因有两个:1.设计的初衷不是为了方便程序员编程写代码,而是用于定义图灵机...

  • 使用Clojure编写文字冒险游戏

    本文翻译自:Casting SPELs in Clojure 准备 任何学过Lisp的人都会说Lisp和其它语言有...

  • LISP基础

    部分摘录于《ANSI COMMON LISP》、《LISP语言(陈光喜)》 变量与赋值 let来完成局部变量的定义...

  • 用JS自定义一门语言

    正好在学习SICP,SICP使用Lisp语言之前了解到Lisp很适合写语言编译器正好最近在学习PowerBI的Da...

  • common lisp - 函数

    函数不仅是 Lisp 程序的根基,它同时也是 Lisp 语言的基石。 除了少数称为特殊形式 (special fo...

  • 我也说说Emacs吧(7) - Lisp基础

    Lisp基础 Lisp是仅次于Fortran的第二古老的著名计算机语言。Lisp从一开始就与众不同的一点在于,它是...

  • Lisp语言了解

    姓名:李嘉蔚 学号16020520034 【嵌牛导读】:大家都知道Mathematica吧?起码都知道Matlab...

  • 垃圾回收算法

    1960年诞生于MIT的Lisp语言是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人...

  • Clojure与Lisp

    Clojure与Lisp "Lisp 不是一门语言,它是一种构建素材。" (艾伦·凯) "任何C或Fortran程...

网友评论

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

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