Arc是一種程式語言,LISP的方言之一,由保羅·格雷厄姆與羅伯特·泰潘·莫里斯設計,2008年釋出第一個正式版本。
![]() | 此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
歷史
2001年,保羅·格雷厄姆宣佈正在製作一個名為「Arc」的新的Lisp方言。多年以來,他已撰寫數篇文章描述該語言的特點與目標,並且Y Combinator的一些內部專案已經用Arc編寫,最受關注的是Hacker News網絡討論區和新聞聚合程式。Arc本身以Racket編寫。[2]
在論文「Being Popular」[3]中,格雷厄姆描述了他對該語言的一些目標。雖然許多目標非常普遍(「Arc應該是可hack」、「它應該是良好的函式庫」),但也確實提供了一些細節。例如,他認為一門語言的簡練很重要:
It would not be far from the truth to say that a hacker about to write a program decides what language to use, at least subconsciously, based on the total number of characters he'll have to type. If this isn't precisely how hackers think, a language designer would do well to act as if it were.
他還表示,一種語言只能實現少量的「公理」,即使這意味着語言可能沒有大型組織想要的功能,比如物件導向程式設計(OO)。事實上,格雷厄姆認為OO是沒有用的,因為它的方法和模式只是「好的設計」,並且他看到用於實現OO的語言特性部分存在謬誤。[4][5]Arc於2008年推出,Graham表示其優勢之一是其簡潔性。[6]
Lisp程式設計師之間的一個爭議是,該種語言的S-表達式是否及應在多大程度上應該用其他形式的語法來補充。格雷厄姆認為當純粹的S表達式過於冗長的情況下,應該使用額外的語法,他說:「我不認為我們應該在宗教上反對引入語法到Lisp。」格雷厄姆也認為,應該給程式設計師一個好的效能剖析器解決方案來解決效率問題。[7]
在2008年發佈後,Arc產生了多種反應,有人稱它只是Lisp或Scheme的一個擴充,而不是一個獨立的程式語言。其他人則稱讚Arc拆去了Lisp非必要的東西。Arc發佈不久後,它被移植到JavaScript,以及被一個基於Eclipse的IDE「Schemescript」支援。[8]
範例
Arc的Hello world程式碼:
(prn "Hello, World")
保羅·格雷厄姆(Paul Graham)使用了一個程式來說明Arc的簡潔性。[9]它產生一個表單,包含一個欄位,url"/said"。提交表單後會被帶到一個帶有「click here」連結的頁面,該頁面本身則會帶回包含原來輸入欄位值的頁面。
(defop said req
(aform [onlink "click here" (pr "you said: " (arg _ "foo"))]
(input "foo")
(submit)))
版本
Arc的第一個公開發布版本出現於2008年1月29日,[10]以Racket(那時為「PLT-Scheme」)實現。該版本以.tar壓縮檔形式發佈,包含Arc的Racket原始碼。一份教程[11] and a discussion forum[12]同時可用。討論區使用也本身以Arc編寫Hacker News程式。
由於官方Arc分支發展緩慢,部分Arc社區的成員已開啟非官方代碼庫存放非官方的修訂、擴充和庫。其中之一是Anarki,[13] permitted[14] anyone to submit changes to the project. 社區管理的wiki[15]是比官方網站更好的資訊來源。[來源請求]
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.