Scheme的解釋器非常多,而且基本都是自由軟件。Lisp 方言 Scheme 的一個(gè)解釋器,可以按照在 Windows 系統(tǒng)上,使用非常方便,也很只智能。
我覺(jué)得比較好用的是DrScheme(現(xiàn)在改名叫DrRacket了,Fedora倉(cāng)庫(kù)中有,叫plt-scheme,但是版本比較老,可以直接從官網(wǎng)上下載最新版本,也有Windows版本),帶有圖形界面,有語(yǔ)法高亮,調(diào)試,單步執(zhí)行等功能。
Racket源自著名的專家型語(yǔ)言PLT Scheme,同時(shí)又是Lisp語(yǔ)言的一個(gè)分支。它適用于從腳本Script到應(yīng)用程序開發(fā)的任務(wù)執(zhí)行工具,包括圖形用戶界面,Web服務(wù)器等。支持編譯器的虛擬機(jī),創(chuàng)建獨(dú)立的可執(zhí)行程序的工具,Racket Web服務(wù)器,具有豐富而全面的功能庫(kù),適用于初學(xué)者和專家編程。
Racket可通過(guò)創(chuàng)建大量的語(yǔ)法系統(tǒng)來(lái)支持和創(chuàng)建新的編程語(yǔ)言,包括Typed Scheme,ACL2, FrTime, Lazy Scheme和ProfessorJ等 。
作為編程語(yǔ)言的通用測(cè)試平臺(tái),Racket軟件包主要工具包括:
* racket——系統(tǒng)核心部分,主要包括編譯器、解釋器和運(yùn)行庫(kù)程序;
* DrRacket——原為DrScheme,是一個(gè)基于Racket的開源、跨平臺(tái)系統(tǒng)的IDE集成編程環(huán)境,更加適用于初學(xué)者的GUI圖形化用戶編程界面;
* raco——基于字符界面的命令行執(zhí)行工具,用于執(zhí)行Racket命令集,如安裝系統(tǒng)組件功能包,創(chuàng)建函數(shù)庫(kù)等。
Racket的特點(diǎn)是具有全面而豐富的庫(kù),可用于實(shí)現(xiàn)xml, web-server, web-framework, multiple-threads, pattern match, latex, slides, posix, GUI等,其實(shí)用性不比Common Lisp差。另外其與眾不同的特點(diǎn)在于macro和continuation,并引入了syntax object和compilable macro的概念。
LISP有以下幾個(gè)主要特點(diǎn):
1.計(jì)算用的是符號(hào)表達(dá)式而不是數(shù);
2.具有表處理能力,即用鏈表形式表示所有的數(shù)據(jù);
3.控制結(jié)構(gòu)基于函數(shù)的復(fù)合,以形成更復(fù)雜的函數(shù);
4.用遞歸作為描述問(wèn)題和過(guò)程的方法;
5.用LISP語(yǔ)言書寫的EVAL函數(shù)既可作為L(zhǎng)ISP語(yǔ)言的解釋程序,又可以作為語(yǔ)言本身的形式定義;
6.程序本身也同所有其他數(shù)據(jù)一樣用表結(jié)構(gòu)形式表示。
已經(jīng)證明:LISP的這些特點(diǎn)是解決人工智能核心問(wèn)題的關(guān)鍵。它和后來(lái)由英國(guó)倫敦大學(xué)的青年學(xué)生柯瓦提出、由法國(guó)馬賽大學(xué)的考爾麥勞厄(Alain Colmerauer)所領(lǐng)導(dǎo)的研究小組于1973年首先實(shí)現(xiàn)的邏輯式語(yǔ)言PROLOG并稱為人工智能的兩大語(yǔ)言,對(duì)人工智能的發(fā)展起了十分深遠(yuǎn)的影響。