📝 Lisp教程
33篇技术文档📅  最后修改于: 2020-11-03 07:04:31        🧑  作者: Mango
Lisp是仅次于Fortran的第二古老的高级编程语言,自成立以来已发生了很大变化,并且在其历史上已经存在许多方言。今天,最广为人知的通用Lisp方言是Common Lisp和Scheme。Lisp是约翰·麦卡锡(John McCarthy)在麻省理工学院(MIT)时于1958年发明的。在学习LISP编程语言时,本参考将带您通过简单实用的方法。该参考资料已为初学者准备,以帮助他们理解与LISP编程...
📅  最后修改于: 2020-11-03 07:04:57        🧑  作者: Mango
约翰·麦卡锡(John McCarthy)于1958年,即FORTRAN的发展不久后,发明了LISP。它最初由Steve Russell在IBM 704计算机上实现。它特别适用于人工智能程序,因为它可以有效地处理符号信息。Common Lisp起源于1980年代和1990年代,试图统一Maclisp的几个实施小组的工作,例如ZetaLisp和NIL(Lisp的新实施)等。它是一种通用语言,可以轻松...
📅  最后修改于: 2020-11-03 07:05:31        🧑  作者: Mango
本地环境设置如果您仍然愿意为Lisp编程语言设置环境,则需要在计算机上使用以下两个软件,(a)文本编辑器和(b)Lisp Executer。文本编辑器这将用于键入您的程序。少数编辑器的示例包括Windows记事本,OS Edit命令,Brief,Epsilon,EMACS和vim或vi。文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,记事本将在Windows上使用,vim或vi可以在...
📅  最后修改于: 2020-11-03 07:06:08        🧑  作者: Mango
LISP表达式称为符号表达式或s表达式。 s表达式由三个有效对象,原子,列表和字符串。任何s表达式都是有效程序。LISP程序可以在解释器上运行,也可以作为已编译的代码运行。解释器以重复循环的形式检查源代码,该循环也称为“读取-评估-打印”循环(REPL)。它读取程序代码,对其进行评估,然后打印该程序返回的值。一个简单的程序让我们编写一个s表达式来查找三个数字7、9和11的和。为此,我们可以在解释器...
📅  最后修改于: 2020-11-03 07:06:41        🧑  作者: Mango
LISP中的基本构建基块LISP程序由三个基本构建块组成-原子清单字符串的原子是一个数字的或连续的字符字符串。它包括数字和特殊字符。以下是一些有效原子的示例-列表是括号内的原子和/或其他列表的序列。以下是一些有效列表的示例-字符串是用双引号引起来的一组字符。以下是一些有效字符串的示例-添加评论分号(;)用于指示注释行。例如,现场演示当您单击执行按钮或键入Ctrl + E时,LISP立即执行它,返回...
📅  最后修改于: 2020-11-03 07:07:13        🧑  作者: Mango
在LISP中,不键入变量,但键入数据对象。LISP数据类型可以分类为。标量类型-例如,数字类型,字符,符号等。数据结构-例如,列表,向量,位向量和字符串。除非您明确声明,否则任何变量都可以将任何LISP对象作为其值。尽管不必为LISP变量指定数据类型,但是它在某些循环扩展,方法声明以及我们将在后面的章节中讨论的其他情况下会有所帮助。数据类型按层次结构排列。数据类型是LISP对象的集合,许多对象可能...
📅  最后修改于: 2020-11-03 07:07:28        🧑  作者: Mango
宏允许您扩展标准LISP的语法。从技术上讲,宏是一个将s表达式作为参数并返回LISP形式的函数,然后对其进行求值。定义宏在LISP中,使用另一个名为defmacro的宏定义了一个命名宏。定义宏的语法是-宏定义包括宏的名称,参数列表,可选的文档字符串和Lisp表达式的主体,这些主体定义了要由宏执行的作业。例让我们编写一个名为setTo10的简单宏,它将使用一个数字并将其值设置为10。创建名为main...
📅  最后修改于: 2020-11-03 07:08:07        🧑  作者: Mango
在LISP中,每个变量都用符号表示。变量的名称是符号的名称,并存储在符号的存储单元中。全局变量全局变量在整个LISP系统中具有永久值,并且在指定新值之前一直有效。全局变量通常使用defvar构造声明。例如现场演示单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为由于LISP中没有变量的类型声明,因此可以使用setq构造直接为符号指定值。例如上面的表达式将值10分配给变量x。...
📅  最后修改于: 2020-11-03 07:08:27        🧑  作者: Mango
在LISP中,常量是在程序执行期间永不更改其值的变量。常量使用defconstant构造进行声明。例下例显示了声明全局常量PI的信息,随后在名为area-circle的函数使用该值来计算圆的面积。defun构造用于定义函数,我们将在“函数”一章中对其进行研究。创建一个名为main.lisp的新源代码文件,然后在其中键入以下代码。现场演示单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,...
📅  最后修改于: 2020-11-03 07:09:03        🧑  作者: Mango
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 LISP允许对数据进行大量操作,并由各种功能,宏和其他结构支持。允许对数据进行的操作可以归类为-算术运算比较操作逻辑运算按位运算算术运算下表显示了LISP支持的所有算术运算运算符。假设变量A持有10,变量B持有20,则-显示范例OperatorDescriptionExample+Adds two operands(+A B) will gi...
📅  最后修改于: 2020-11-03 07:09:21        🧑  作者: Mango
决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及确定条件为真的情况下要执行的一条或多条语句,以及如果条件被确定为可选的其他执行语句确定为假。以下是大多数编程语言中常见的典型决策结构的一般形式-LISP提供以下类型的决策构造。单击以下链接以查看其详细信息。Sr.No.Construct & Description1condThis construct is used for used ...
📅  最后修改于: 2020-11-03 07:09:40        🧑  作者: Mango
在某些情况下,您需要执行一段代码次数。循环语句使我们可以多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式。LISP提供以下类型的构造来处理循环需求。单击以下链接以查看其详细信息。Sr.No.Construct & Description1loopTheloopconstruct is the simplest form of iteration provided by LISP...
📅  最后修改于: 2020-11-03 07:10:06        🧑  作者: Mango
函数是一起执行任务的一组语句。您可以将代码分成单独的函数。如何在不同功能之间划分代码取决于您,但是从逻辑上来说,划分通常是使每个函数执行特定任务。在LISP中定义功能名为defun的宏用于定义函数。defun宏需要三个参数-函数名称函数参数函数主体defun的语法是-让我们用简单的例子来说明这个概念。例子1让我们编写一个名为averagenum的函数,该函数将打印四个数字的平均值。我们将这些数字作...
📅  最后修改于: 2020-11-03 07:10:36        🧑  作者: Mango
谓词是针对某些特定条件测试其参数的函数,如果条件为false,或者某些非nil值为条件为true,则返回nil。下表显示了一些最常用的谓词-Sr.No.Predicate & Description1atomIt takes one argument and returns t if the argument is an atom or nil if otherwise.2equalIt take...
📅  最后修改于: 2020-11-03 07:11:07        🧑  作者: Mango
Common Lisp定义了几种数字。数字数据类型包括LISP支持的各种数字。LISP支持的数字类型是-整数比率浮点数字复数下图显示了LISP中可用的数字层次结构和各种数字数据类型-LISP中的各种数字类型下表描述了LISP中可用的各种数字类型数据-Sr.No.Data type & Description1fixnumThis data type represents integers whic...