Lisp语言的分支 Racket
Racket源自著名的专家型语言PLT Scheme,同时又是Lisp语言的一个分支。它适用于从脚本Script到应用程序开发的任务执行工具,包括图形用户界面,Web服务器等。支持编译器的虚拟机,创建独立的可执行程序的工具,Racket Web服务器,具有丰富而全面的功能库,适用于初学者和专家编程。
Racket可通过创建大量的语法系统来支持和创建新的编程语言,包括Typed Scheme,ACL2, FrTime, Lazy Scheme和ProfessorJ等 。作为编程语言的通用测试平台,Racket软件包主要工具包括:
* racket——系统核心部分,主要包括编译器、解释器和运行库程序;
* DrRacket——原为DrScheme,是一个基于Racket的开源、跨平台系统的IDE集成编程环境,更加适用于初学者的GUI图形化用户编程界面;
* raco——基于字符界面的命令行执行工具,用于执行Racket命令集,如安装系统组件功能包,创建函数库等。
Racket的特点是具有全面而丰富的库,可用于实现xml, web-server, web-framework, multiple-threads, pattern match, latex, slides, posix, GUI等,其实用性不比Common Lisp差。另外其与众不同的特点在于macro和continuation,并引入了syntax object和compilable macro的概念。
具体说来,LISP有以下几个主要特点:
1.计算用的是符号表达式而不是数;
2.具有表处理能力,即用链表形式表示所有的数据;
3.控制结构基于函数的复合,以形成更复杂的函数;
4.用递归作为描述问题和过程的方法;
5.用LISP语言书写的EVAL函数既可作为LISP语言的解释程序,又可以作为语言本身的形式定义;
6.程序本身也同所有其他数据一样用表结构形式表示。
已经证明:LISP的这些特点是解决人工智能核心问题的关键。它和后来由英国伦敦大学的青年学生柯瓦提出、由法国马赛大学的考尔麦劳厄(Alain Colmerauer)所领导的研究小组于1973年首先实现的逻辑式语言PROLOG并称为人工智能的两大语言,对人工智能的发展起了十分深远的影响。