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并稱為人工智能的兩大語言,對人工智能的發展起了十分深遠的影響。