Lisp语言了解

作者: f81f045af009 | 来源:发表于2017-10-26 08:35 被阅读0次

姓名:李嘉蔚 学号16020520034

【嵌牛导读】:大家都知道Mathematica吧?起码都知道Matlab吧。而我觉得前者更强大,是用C语言写的软件。而形成的Mathematica语言就像Lisp语言一样,适合人工智能使用。

【嵌牛鼻子】:一种强大的语言。用的人不多。据称比较反智。

【嵌牛提问】:Lisp是干啥的呢?值得学习吗?

【嵌牛正文】:

我对下棋的机器啥的已经习以为常了,况且我对下棋又只是了解,没研究过如何提升下棋水平。所以感觉机器会下棋也无所谓。不过我做数学,学科学可就多了,就在想机器做题的能力。首先我就百度到了一个大神软件:Mathematica.后来发现其实和Matlab一样,只是更强大了。他们的共同点就是用C语言写的软件,实现了符号运算。

这就是mathematica:

长度为1的代码片段

π

猜猜看?这就是π。它不是用浮点数表示的近似值,它就是π的精确值,因此涉及到π的复变函数和三角函数的运算可以得到精确的结果。

我手机上也有个手机版的Mathematica:

Lisp语言了解 Lisp语言了解

虽然手机版的有解题过程,不过还是可以看出它用的方法太复杂,比较机械地套用定理。不过不要过程只要结果的话还是很快的。手机版的这是云计算的功能。

于是我就又了解到有人说Mathematica很像Lisp语言。我就知道原来还有Lisp这一专门用于人工智能符号运算的语言。

那么来看看什么是Lisp吧:

在LISP语言中,数据和函数都是采用符号表达式定义的,这种符号表达式称为S一表达式,它是原予和表的总称。原子分为符号原予和数原子。符号原子是指有限个大写字母和数字组成的字符串,其中第一个符号必须是字母。原子NIL和T分别表示逻辑假(或空表)和逻辑真。数原子是指一串数字,通过符号表示其正负。

他有的特点:(1)函数性

用LISP语言编程只需要确定函数之间的调用,把函数执行的细节交给LISP系统来解决。因此,LISP语言是更加面向用户的语言。

(2)递归性   

递归定义的方法使程序简明、优美,程序员应充分利用递归程序设计方法。

(3)数据与程序的一致性

一个函数被其他函数调用,就是调用了这个函数的返回值。在LISP中,函数与这个函数的返回值是一致的。这一特点使得LISP的编程就是定义一个宏函数,也使得LISP语言的扩充比较容易。可以根据应用领域的需要,使用LISP提供的基本函数扩充若干面向专门应用领域的宏函数。

(4)自动进行存储分配

程序员完全可以不考虑存储分配问题。程序中定义的函数、数据和表等都能在程序运行时,由LISP自动提供。对不再需要的数据,LISP自动释放其占用的存储区。

(5)语法简单

对变量和数据不需要事先定义和说明类型。LISP语言的基本语法就是函数定义和函数调用。因此,LISP语言的程序便于修改、调试和纠错,可以边实验边设计,通过不断修改和增加用户自定义函数来构成复杂的系统。

它的作用总结:

LISP语言不仅在专家系统和CAD领域有广泛的应用,在符号代数、定理证明、机器人规划等领域也有广泛的应用。

既然Lisp这么好,为何用的人好像很少?

影响LISP语言使用的主要原因有:一是LISP是非可视化语言;二是LISP在通用计算机上的运行效率较低;三是LISP的数值计算能力较差;四是人们对函数型语言的编程风格不习惯。传统的程序设计语言是适应冯·诺依曼型计算机系统结构而发展起来的,LISP在诺依曼型计算机上运行的效率要低一些。计算机系统结构的发展,使得函数型语言有着广阔的前途。为了适应当前微型机发展水平和程序员使用传统语言编程的习惯,LISP语言增加了许多非函数型的语言成分。

Lisp并不只是说代码上的抽象,相对于你学习java之后,再去看Lisp,就会颠覆你对原本程序世界的认知,有种重塑三观的感觉,哦,原来代码可以这么写。知道Lisp但并不会让你一下子就变成牛逼的人物,所以说有些基础还是需要打好的,思维方式虽然不一样,但是代码的本质并没有变。反正做东西大体上都一样,人们只是关心你做出来没有,而不会去在意你用什么做出来的。当然作为提高自身修养的一种语言,完全没必要说是为了生存而学习它。

国内之所以没有很多Lisp,很简单,高校教材教的是什么,看一下就知道了。

LISP 这一类语言迎合的是数学家的本性,而不是程序员的本性。

Lisp用的人少主要是因为现在的键盘上没有一个专门的括号键。(这是因为代码需要频繁的加括号)

{

功能太强大,以至于遇到什么问题的时候everyone likes to roll his own。导致dialect/implementation分裂,community分裂。不像一些新兴语言那样拥有大一统的library,阻碍了新手通过(从日常的一些小工具开发)实践来学习。早年Lisp在performance上败于C等语言,错过了个人计算机开始兴起的那段时期。

作者:金坷垃

来源:知乎

}

嗯,我感觉就介绍这么多吧,手机要自动关机了,让大家知道这个语言,更多的请自己百度或找书吧~

相关文章

  • Lisp语言了解

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

  • 用JS自定义一门语言

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

  • lisp语言

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

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

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

  • Lisp语言的核心是什么

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

  • LISP基础

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

  • common lisp - 函数

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

  • Clojure与Lisp

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

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

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

  • 垃圾回收算法

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

网友评论

    本文标题:Lisp语言了解

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