Sunday, March 21, 2010

读博和大便的相同点

 1. 都是憋出来的;
 2. 肚子里有货才爽,否则很痛苦;
 3. 即便肚子里面有货,也得有paper才行;
 4. paper越多心里越踏实;
 5. paper上的都是屎;
 6. 一般来说paper不能是别人用过的;
 7. 当然,即使paper虽然是别人用过的,但是看不出来就行;
 8. 运气够好的话可以借到paper;
 9. 没有paper的话,如果你很有钱也能解决问题;
10. 实在没有paper,直接拍拍屁股走人是很需要勇气的;
11. 读博和大便的缩写都是db。

LISP语言的主要特点

优点
(1) LISP具有和图灵机相同的(也就是理论上最高的)计算能力;
在计算机科学的可计算理论中,人们已经证明递归函数和图灵机具有相同的(也就是理论上最高的)计算能力,通常指的是自然数集上的递归函数。这个结 论对符号集上的递归函数也成立。J.McCarthy在LISP中设计了一套符号处理函数,它们具有符号集上的递归函数的计算能力,因此原则上可以解决人 工智能中的任何符号处理问题。
(2)数据类型的唯一性,程序与数据的一致性;
LISP的数据类型和句法结构简单,甚至简单到具有唯一性和一致性:其数据和程序的表现形式是一样的, 都是用S-表达式一种形式.基本的数据结构是表(表是S-表达式的特例)。
(3)数据和程序的 等价性;
LISP的数据和程序不仅类型一致,而且作用也等价;
即:程序可作为数据被处理,数据也可作为程序来执行。
(4)LISP一切功能由函数来实现,程序的运行就是求值;
LISP程序的通常形式是一串函数定义,其后跟着一串带有参数的函数调用,函数之间的关系只是在调用执行时才体现出来。
(5)LISP语言的控制结构以递归为主;
大多数语言使用的控制结构是以循环为主的,有的程序语言允许递归,而LISP以递归形式为主。递归是LISP能力的源泉。当然现在LISP也有循 环结构和迭代。
(6)原子可以有任意多个值(特性值);
LISP非常重要的一个特点是每个文字原子可以加许多特性,每个特性有一个特性表及对应的特性值。由于原子的多值性给使用者带来很多方便,给问题 表示带来好处,使LISP很好用。
(7)LISP具有表的结构形式和规模的灵活性,不必预先设定;
(8)具有收集无用单元的功能。

缺点
(1)初学者不容易习惯LISP的句法结构,特别是多层表的括号配对写法;
(2)数据类型少(常用的只有表和原子),使其表达能力受限;
(3)规范性差(无标准版本,不同的LISP文本间差别较大);
(4)程序的可读性不及一般的高级语言;
(5)执行速度慢。
LISP 执行速度慢的原因有几个:(1)一般的 LISP是解释型, 程序边解释边执行当然比编译型慢;(2)LISP的控制结构主要是递归,递归费时间费空间;(3)内存空间动态变化。LISP不要求用户在程序 中写一些用来指示内存分配的说明语句,全部内存必须动态的分配,直到没有空间时才开始收集无用单元。  

why lisp

LISP是一种计算机表处理语言,是函数型语言。它是LIST Processing的缩写,是研究人工智能的有力工具。LISP是继FORTRAN(FORTRAN是1954年提出,1956年开始使用)之后出现的第二个古老的(1958年提出,1960年开始使用)计算机高级语言,至今使用近五十年仍受重视,并为人工智能语言的发展作出了不可磨灭的贡献。它是一门历史悠久,用途广泛,功能极强,生命力极强的人工智能程序设计语言。

Lisp语言具有其他高级语言不可比拟的特征。它具有坚固的理论基础,丰富的表达能力,较强的可塑性,也提供了操作系统的许多设施,如命令解释器、文件管理、多任务等。所有这些特征为符号计算和人工智能研究提供了一个方便的工具。

First, Lisp is far from archaic or dead! Although it is one of the oldest programming languages (invented in the early 1960s, along with Fortran!), it is still widely used in the Artificial Intelligence community.

Lisp is also the only programming language with certain very useful features, such as true macros, that are critical when you are inventing a new programming language, because they enable you to extend Lisp's syntax1. Lisp is the most natural language in which to write complex 'symbolic reasoning' programs, Symbolic reasoning involves manipulating conceptual objects, such as 'genes', 'ontologies', 'pathway models', and the like, and Lisp was built specifically for this sort of manipulation. This is why it has remained popular in the most advanced computing circles, esp. in Artificial Intelligence.


(1. Python, which is more-or-less lisp w/o the parens, is missing several critical features to do what we do in BioBike, esp. true macros, which enable you to manipulate expressions, create sub langauages, and engage in applicative programming. Someday the Python crowd will realize that uniform syntax is a good thing, and will re-adopt parens (or something like them), and then Python will just be Lisp again, and much the better for it! )