Lisp的精髓是:lisp 模糊了过程与数据,数据与结构之间的边界。这样,结构和过程可以是数据,数据也可以是结构和过程。这种抽象非常符合事物的本质,所以用lisp去描述映射现实事物的时候,能够很自然和思维认知保持一致。
LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为应用人工智能而设计的语言,是名列前茅个声明式系内函数式程序设计语言,有别于命令式系内过程式的C、Fortran和面向对象的Java、C#等结构化程序设计语言。
LISP名称源自列表处理(LISt Processing)的英语缩写,由来自麻省理工学院的人工智能研究先驱约翰·麦卡锡(John McCarthy)在1958年基于λ演算所创造,采用抽象数据列表与递归作符号演算来衍生人工智能。
lisp 模糊了过程与数据,数据与结构之间的边界。这样,结构和过程可以是数据,数据也可以是结构和过程。这种抽象非常符合事物的本质,所以用lisp去描述映射现实事物的时候,能够很自然和思维认知保持一致。
如果说,编程语言的语法是工具,让人去抽象构建现实世界。那么lisp的语法就是量子,让人去构建物质,然后在迭代构建其它的一切。整个语言就是一个递归。
LISP为函数式程序设计语言,所有运算都能以函数作用于参数的方式来实现。
LISP没有命令式语言程序中常见赋值语句和变量,重复的过程可以使用递归的函数调用来表示,并不需要使用循环模式。
LISP是古老的函数语言、弱类型、动态推断,其代码本身就是各种列表。每一个表项均可以储存任何类型的数据如数字、函数、符号或一个子表等,在编码时,可以随时操作以更新列表。
LISP核心的操作符只有7个操作符:quote、atom、eq、car、cdr、cons、cond。前三者quote、atom、eq用于符号的推断;car、cdr、cons操纵表格;cond负责分支判断。这种简洁定义,非常接近图灵机原型的纯函数式语言,是现代语言完全无法比拟的。
LISP作为弱类型这优点相对缺点则是运行效率的低下。原始定义简洁的缺点使到大型开发工程变得困难,自底层到高层,自二维表查询到面向对象,使用者需要嵌入更多的函数来实现,致使LISP众多方言的衍生。
延伸阅读:
LISP的历史背景
20世纪50年代中期,在大多数计算机处理的都是数值数据等,包括语言学、心理学和数学领域上一些人们开始对人工智能产生了兴趣。觉得必须实现共同需要的一个方法,使计算机能够处理链表中的符号数据,允许语言的处理、信息存入和检索、定理证明的过程机器化。IBM是首先对人工智能开发有兴趣的商业机构之一。
1958年夏天,来自麻省理工学院的人工智能研究先驱约翰·麦卡锡(John McCarthy)参与IBM资讯研究部的工作,研究符号运算及应用需求。可是,IBM旗下的Fortran表处理语言却未能支援符号运算的递归、条件表达式、动态存储分配及隐式回收等功能。约翰·麦卡锡于1958年秋季回到麻省理工学院后,和Marvin Minsky组成了人工智能项目。开展一个表处理软件系统来实现McCarthy提出建议采纳者程序的工作,尔后推动了表处理语言LISP的诞生。
文章标题:Lisp的精髓是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39050