思維方式而言,兩者相差並不多。考慮到函數語言程式設計並不是如今程式開發的主流,無論是 Lisp 還是 Haskell,它們和主流工程實踐都相差很多。但具體到函式式程式設計語言之間,基本的思路是類似的。函式式程式設計的風格的實質:去除賦值的副作用,自包含上下文的高階函式,以「值」的流動而不是操作的變化為中心設計程式,這在兩門語言中都是一樣的。當然,在細節上兩門語言仍然有區別:Lisp 的宏展開,弱型別/動態型別,Haskell 的惰性求值,強型別,都有各自的區別。具體開始使用時,需要注意其特性才能用好。在社群上,Lisp 有固定的社群,但由於大量 Lisp 方言的存在,導致如今的分裂得很厲害。除了 Common Lisp 這個大型社群外,還有各種小型 Lisp 社群,星羅棋佈。這使得 Lisp 社群事實上很難形成合力做出一個各個方言通用的平臺——是的,即使 Common Lisp 是最大的社群,從源流上看,它也依然是方言之一。我必須承認,這一點上 Haskell 要好得太多。Haskell 的社群透過 http://www.haskell.org 很好地被統一在一起,無論是教學還是開發,都容易集合整個社群的力量。談到工程領域,至少目前為止,Haskell 社群在宣傳時一直是將其定位為一門通用程式設計語言的。但恕我直言,現在這個社群還沒有找到真正適合自己的工作場景,或者說,這個社群的成熟程度還不足以支撐一個適合自己的工作場景。在我的眼裡,這個社群的核心,仍然是一門玩具語言。反觀 Lisp 社群,他們的應用場景簡單而專注:符號推演和人工智慧;與此同時,許多 Lisp 方言也將自己的觸角伸進實際工程領域,配合其他語言使用。也有 Emacs 和 Gimp 這樣各自領域內公認的通用軟體。
思維方式而言,兩者相差並不多。考慮到函數語言程式設計並不是如今程式開發的主流,無論是 Lisp 還是 Haskell,它們和主流工程實踐都相差很多。但具體到函式式程式設計語言之間,基本的思路是類似的。函式式程式設計的風格的實質:去除賦值的副作用,自包含上下文的高階函式,以「值」的流動而不是操作的變化為中心設計程式,這在兩門語言中都是一樣的。當然,在細節上兩門語言仍然有區別:Lisp 的宏展開,弱型別/動態型別,Haskell 的惰性求值,強型別,都有各自的區別。具體開始使用時,需要注意其特性才能用好。在社群上,Lisp 有固定的社群,但由於大量 Lisp 方言的存在,導致如今的分裂得很厲害。除了 Common Lisp 這個大型社群外,還有各種小型 Lisp 社群,星羅棋佈。這使得 Lisp 社群事實上很難形成合力做出一個各個方言通用的平臺——是的,即使 Common Lisp 是最大的社群,從源流上看,它也依然是方言之一。我必須承認,這一點上 Haskell 要好得太多。Haskell 的社群透過 http://www.haskell.org 很好地被統一在一起,無論是教學還是開發,都容易集合整個社群的力量。談到工程領域,至少目前為止,Haskell 社群在宣傳時一直是將其定位為一門通用程式設計語言的。但恕我直言,現在這個社群還沒有找到真正適合自己的工作場景,或者說,這個社群的成熟程度還不足以支撐一個適合自己的工作場景。在我的眼裡,這個社群的核心,仍然是一門玩具語言。反觀 Lisp 社群,他們的應用場景簡單而專注:符號推演和人工智慧;與此同時,許多 Lisp 方言也將自己的觸角伸進實際工程領域,配合其他語言使用。也有 Emacs 和 Gimp 這樣各自領域內公認的通用軟體。