Functional Programming - Lisp

Feb 20 2010

What Made Lisp Different. The 9 original and new ideas embodied by Lisp, a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax, are:

  1. Conditionals.

  2. A function type.

  3. Recursion.

  4. Dynamic typing.

  5. Garbage-collection.

  6. Programs composed of expressions.

  7. A symbol type.

  8. A notation for code using trees of symbols and constants.

  9. The whole language there all the time.

Source:Hackers & Painters

在看 Hackers & Painters 過程中,稍為了解 C -> C++ -> Java -> Perl -> Python -> Ruby 的演化,一種“趨向 Lisp 的進步方式“。根據 Paul Graham 書中的陳述,這些語言一個一個發展下去,從最早的“執行起來快“的 C/C++,慢慢往“語言本身能力比較厲害“的方向走,然後最厲害的,就是 1958 年由 John McCarthy 發明的 Lisp 了。(正確來說,是他的學生 Steve Russell 實現了第一個 Lisp interpreter,有趣的是,這位 Russell 同時是歷史上,寫出第一個 video game, Spacewar!, 的作者!)

根據 The Pragmatic Programming 的說法,一位積極進取的 programmer 應該做的事情之一,就是每一陣子去學習一個新的程式語言,另一種有別於你已經會的程式語言。透過從骨子裏學習新的語言,除了可以喚醒你「初學程式語言的新鮮感」,同時可以讓你學到以不同的觀點看待“寫程式“。為此,我打算隔一陣子,來去學學大一之後就沒有再接觸的 Lisp 家族。

comments powered by Disqus