Lisp
airinsoul
这个作者很懒,什么都没留下…
展开
-
Lisp.演进设计
因为Lisp给你自己定义你自己操作符的自由,你可以把它铸造成适合你需求的语言。如果你正在写一个文本编辑器,你可以将Lisp转化成一个写编辑器的语言。如果你正在写一个CAD程序,你可以将Lisp转化成写CAD程序的语言。如果你不知道你在写什么类型的程序,使用Lisp也是安全的尝试。翻译 2011-09-09 19:11:10 · 583 阅读 · 0 评论 -
Lisp.可扩展的语言
不久前,如果你问LISP是用来做什么的,许多人将回答:“做人工智能的”。事实上,Lisp和AI的关系仅仅是一个历史的巧合。John Mcarthy发明了LISP,他也提出了了“人工智能”的概念。他的学生和同事都用LISP来写程序,然后LISP就被称为一门AI语言。这条线在20世纪翻译 2011-09-09 17:42:10 · 716 阅读 · 0 评论 -
Lisp.可扩展的软件
Lisp风格的编程是随着软件复杂度的增长而增长的。高端用户现在要求程序做那么多的事情,以至于我们不能满足他们所有的需求。他们自己也不能完全满足他们自己的需求。但是如果我们不能给他们满足他们完全需求的软件,我们可以给他们可扩展的软件。我们将我们的软件从一个单一的程序编程一个编程语言翻译 2011-09-10 15:46:51 · 662 阅读 · 0 评论 -
Lisp.扩展Lisp
有两种方式来给Lisp添加新的操作符:函数和宏。在Lisp中,你定义的函数和内置的那些有一样的状态。如果你想要一个mapcar的变体,你可以自己定义一个,并像使用mapcar一样使用它。比如,如果你想要一个函数应用于1到10的变量后返回的一列值,你可以创建一个新的列表并将它传递给翻译 2011-09-11 13:03:40 · 896 阅读 · 0 评论 -
Lisp.为什么使用Lisp
这些新的可能性并不是来自于一个新的神奇元素。在这个方面,Lisp就像是一个架构。到底是哪块楔形的石头(拱石)来管控这个架构呢?这个问题本身就是错误的;它们都在做。像一个架构,Lisp是一个连锁特征的集合。我们可以列出其中的一些特征——动态存储分配和垃圾回收,运行时类型,作为对象的翻译 2011-09-12 00:19:03 · 951 阅读 · 0 评论 -
Lisp.函数
函数是Lisp程序的构建块。它们也是Lisp的构建块。在多数的语言中+操作符和用户自定义函数是非常不同的。但是在Lisp中有一个单一模型,函数应用,来描述一个程序所要做的全部计算。Lisp的+操作符是一个函数,和你自己定义的函数一样。事实上,除了一小部分叫做特殊形式的翻译 2011-09-12 12:51:28 · 584 阅读 · 0 评论 -
Lisp.函数作为数据
两样东西使得Lisp函数不同。第一,上面提到的,Lisp自身就是一个函数的集合。这意味着我们可以向Lisp中加入我们自己的操作符。另外一个我们需要知道的关于函数的东西是它们是Lisp对象。Lisp提供了其它语言中能找到的多数的数据类型。我们知道整形和浮点型数字,字符串翻译 2011-09-12 13:47:51 · 876 阅读 · 0 评论 -
Lisp.定义函数
多数人通过defun来学习怎样定义函数。下面的表达式定义了一个叫做double的函数,这个函数返回它参数的两倍。[1]> (defun double (x) (* x 2))DOUBLE将这些传递给Lisp之后,我们可以在其它函数中调用double,或者直接在最高翻译 2011-09-13 23:10:46 · 5475 阅读 · 0 评论 -
Lisp.自下而上的编程
一个程序的函数元素不能太大是一个长期存在的编程风格原则。如果程序的某些组件增长到读难以理解的成都,它就变成一大堆的复杂东西,它们隐藏错误就像一个大城市隐藏逃亡者一样简单。这样的软件将很难读、很难测试、很难杀臭虫。遵循这个原则,一个大的程序必须被分成很多片,一个程序越大翻译 2011-09-10 15:06:00 · 828 阅读 · 0 评论