Why is Lisp so great?

自從看完了駭客與畫家後,就開始看Common Lisp相關的書和文章。其中我最有興趣的是Paul Graham不斷提起的macro。

一開始我還不了解macro到底強在哪裡,為什麼能讓Lisp如此特別,直到發現Why is Lisp so great? or Why so many parenthesis?這篇文章,才大大一驚,原來macro是這樣玩的!

這篇文章舉了Haskell著名的quicksort implementation為例

qsort []     = []qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_xwhereelts_lt_x   = [y | y < - xs, y < x]elts_greq_x = [y | y<- xs, y >= x]

這份實做真的非常漂亮,短短幾行就說完了qsort。...

阅读全文