Arc 語言是 Graham 設(shè)計(jì)的一種全新的 Lisp 方言,被實(shí)現(xiàn)為一個(gè)對(duì) MzScheme 的擴(kuò)展程序。與其它方言不同,這個(gè)語言具有十分清晰和“現(xiàn)代化”的語法,以至于無法被直接實(shí)現(xiàn)為一組 Scheme 的衛(wèi)生宏。按照作者的話說,Arc 是一種適合“探索性編程”(exploratory programming)的語言,適合樂于思考但不想被現(xiàn)有語言的語法、特性等不足限制思考的程序員使用,在構(gòu)建大型程序方面并無很大優(yōu)勢(shì)。 語法方面,使用了整合 cond 能力的 if,類似 Lua 的 for 語句,省略了轉(zhuǎn)換函數(shù)(相對(duì)于 Lisp)的宏定義 mac,被替換為方括號(hào)的 lambda,字符串、列表、散列的取值語法即函數(shù)調(diào)用語法。并簡(jiǎn)化了大量常用語法。
語義方面,增加了對(duì)于 Lisp 來說不存在的算符這一概念。示例:
(map odd:car ' ((1 2) (4 5) (7 9))) 返回 (t nil t)
語義方面,增加了對(duì)于 Lisp 來說不存在的算符這一概念。示例:
(map odd:car ' ((1 2) (4 5) (7 9))) 返回 (t nil t)