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