站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
LISP
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
'''LISP'''语言(全名LISt Processor,即链表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。 == 简介 == LISP有很多种方言,各个实现中的语言不完全一样。各种LISP方言的长处在于操作符号性的数据和复杂的[[数据结构]]。1980年代Guy L. Steele编写了Common Lisp试图进行[[标准化]],这个标准被大多数解释器和编译器所接受。在[[Unix]]/[[Linux]]系统中,还有一种和Emacs一起的Emacs Lisp(Emacs的拓展语言便是Lisp)非常流行,并建立了自己的标准。 LISP的祖先是1950年代Carnegie-Mellon大学的Newell、Shaw、Simon开发的[[IPL]]语言。 LISP语言的主要现代版本包括Common Lisp和Scheme。 lisp拥有理论上最高的运算能力。 lisp在[[cad]]绘图软件上的应用非常广泛,普通用户均可以用lisp编写出各种定制的绘图命令 == 名址分离网络协议 == 注意:LISP在近几年也指一种名址分离网络协议,即 Location-ID Separation Protocol。 在Internet的不断发展和壮大的同时,也呈现出了更多的弊端以及面临着诸多方面的挑战,包括全局路由表的持续不断的增长、缺乏对multi-homing和业务量工程以及移动性和安全性很好的支持等多方面的因素。 为了彻底地解决上述问题,众多研究者都提到名址分离这一想法,如LISP\HIP等。在LISP中,原有的网络IP地址被分成EID(end-identifier)和RLOC(routing locator)。其中,EID用于标志主机,不具备全局[[路由]]功能;RLOC用于全网路由。名址分离网络自然会引入名与址的映射,即LISP中EID-to-RLOC的映射。众所周知,分级结构有着非常明显的优点,如结构简单、查询效率高等;已有方案中HRA、HAIR、RANGI、HiiMap、Lisp_CONS都提到采用分级结构进行映射系统的设计。 == 基本介绍 == Lisp的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如abc;表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如: <pre> abc () (abc xyz) (a b (c) d) </pre> 最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。 正如算数表达式1+1有值2一样,Lisp中的表达式也有值,如果表达式e得出值v,我们说e返回v。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。 Lisp的7个公理(基本操作符): '''公理一''': (quote x)返回x,我们简记为'x '''公理二''': <pre> (atom x)当x是一个原子或者空表时返回原子t,否则返回空表()。在Lisp中我们习惯用原子t表示真,而用空表()表示假。 > (atom 'a) t > (atom '(a b c)) () > (atom '()) t </pre> 现在我们有了第一个需要求出自变量值的操作符,让我们来看看quote操作符的作用——通过引用(quote)一个表,我们避免它被求值。一个未被引用的表达式作为自变量,atom将其视为代码,例如: <pre> > (atom (atom 'a)) t </pre> 反之一个被引用的表仅仅被视为表 > (atom '(atom 'a)) () 引用看上去有些奇怪,因为你很难在其它语言中找到类似的概念,但正是这一特征构成了Lisp最为与众不同的特点——代码和数据使用相同的结构来表示,而我们用quote来区分它们。 '''公理三''': <pre> (eq x y)当x和y的值相同或者同为空表时返回t,否则返回空表() > (eq 'a 'a) t > (eq 'a 'b) () > (eq '() '()) t </pre> '''公理四''': <pre> (car x)要求x是一个表,它返回x中的第一个元素,例如: > (car '(a b)) a </pre> '''公理五''': <pre> (cdr x)同样要求x是一个表,它返回x中除第一个元素之外的所有元素组成的表,例如: > (cdr '(a b c)) (b c) </pre> '''公理六''': <pre> (cons x y)要求y是一个表,它返回一个表,这个表的第一个元素是x,其后是y中的所有元素,例如: > (cons 'a '(b c)) (a b c) > (cons 'a (cons 'b (cons 'c ()))) (a b c) </pre> '''公理七''': <pre> 条件分支,在Lisp中,它是由cond操作符完成的,cond是七个公理中最后一个也是形式最复杂的一个(欧几里德的最后一个公理也如是): (cond (p1e1) (p2e2)...(pnen)) p1到pn为条件,e1到en为结果,cond操作符依次对p1到pn求值,直到找到第一个值为原子t(还记得吗?)的p,此时把对应的e作为整个表达式的值返回,例如: > (cond ((eq 'a 'b) 'first) ((atom 'a) 'second)) second </pre> ==相关条目== *[[GIMP]] *[[GIF]] ==参考来源== *http://baike.baidu.com/view/293795.htm [[category:编程语言|L]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)