极致之美——百行代码实现全新智能语言Lisp

作者:月影 来源:51js 时间:2010-07-13 13:07:00 

首先要解释一下:


“极致之美”不是说月儿的这篇文章,因为本人还没有自大到这种程度:P,它形容的是Lisp和javascript结合的优美形态。

正如标题所描述的,下文是关于用javascript实现类Lisp语言的技巧,然而重点不在于如何实现一门编程语言,而是在于通过思考和实现过程展示javascript的简洁灵活和Lisp的优美。

或许这里接触Lisp的人不多,因此不少人一定会对以下的内容或形式感到奇怪,如果你完全没有接触过它,不必过分惊讶,Lisp的确与以前你见过得所有编程语言不同,因为,呃,它是Lisp,独一无二的Lisp,一段优雅、简洁、完整、独立的奇妙思想,也许你会觉得它很难懂,但是一旦你懂了,你会喜欢上它的。

好了,下面开始我们的LispScript之旅~


最近在网上偶然看到一篇文章,说javascript = C+Lisp,于是思考这样的问题,既然javascript包含着部分Lisp的血统,那么用javascript来实现一个类似于Lisp的人工智能脚本又会是什么样子?

LISt Processing语系作为一种“函数式”语系,自从诞生之日起便以其简单优美的风格和简洁高效的结构征服了许许多多的研究者和爱好者。

目前这种古老的语言和文法仍然被许许多多的人使用着并热爱着,而且在人工智能等领域发挥着非常巨大的作用。

我认为,javascript的灵活加上Lisp的简洁,应该能够创造出一种非常优美的语言,不过这种语言是什么样子的呢?相信大家也很想知道,那么下面我们一起来研究一下这个非常吸引人的问题。

(在仔细阅读下面的内容之前,建议大家先倒杯热茶,坐下来平静一下自己的心情,深呼吸一下,集中起精神来,因为下面的过程将是有趣而又颇耗脑细胞的...^^)

在进入Lisp王国之前,让我们先来做一些javascrip的准备工作...请仔细阅读下面的代码


以上这段简简单单不过数十行的javascript代码由三个辅助函数、一个主体对象、一个常量NIL(后面我们会知道它表示一个空表或者逻辑false),以及一个存放函数名称的堆栈组成。

标签:Lisp,javascript
0
投稿

猜你喜欢

  • JavaScript Length 字符长度函数

    2008-12-12 12:29:00
  • Javascript 中 String.replace( ) 的妙用

    2008-08-05 18:08:00
  • 把网页中的电话号码生成图片的ASP程序

    2008-11-07 16:12:00
  • 德国ebay购头记

    2009-04-29 11:10:00
  • 解读HTML:命名空间与字符编码

    2008-12-10 14:03:00
  • 解析SQL Server中数据库快照的工作原理

    2009-02-19 17:04:00
  • 彻底解决MySql在UTF8字符集下乱码问题

    2011-06-02 12:02:00
  • JavaScript在ASP页面中实现掩码文本框效果代码

    2013-06-01 19:57:23
  • XML与HTML的结合(上)

    2008-09-05 17:19:00
  • MySQL中delimiter的作用

    2010-10-25 20:26:00
  • 深入MySQL数据库的索引

    2009-02-26 15:27:00
  • url传递中文的解决方案

    2007-10-09 20:17:00
  • 3个常用的JS时间代码

    2009-03-22 15:29:00
  • 认识Javascript数组

    2009-08-27 15:26:00
  • 解决“引入同一个JS文件在非IE6中正常,但IE6报错”的问题

    2009-04-03 11:42:00
  • DreamweaverMX Ultradev探索:技巧荟萃

    2010-07-13 12:10:00
  • 简单仿LightBox效果

    2008-09-19 21:35:00
  • asp的日期转换星座函数

    2010-06-09 21:05:00
  • sqlserver中如何查询出连续日期记录的代码

    2011-09-30 11:16:56
  • 松子学ASP—Server篇

    2008-04-22 14:14:00
  • asp之家 网络编程 m.aspxhome.com