- Haskell 教程
- Haskell - 首頁
- Haskell - 概述
- Haskell - 環境設定
- Haskell - 基本資料模型
- Haskell - 基本運算子
- Haskell - 決策
- Haskell - 型別和型別類
- Haskell - 函式
- Haskell - 函式進階
- Haskell - 函式組合
- Haskell - 模組
- Haskell - 輸入與輸出
- Haskell - Functor (函子)
- Haskell - Monad (單子)
- Haskell - Zipper (拉鍊)
- Haskell 有用資源
- Haskell - 快速指南
- Haskell - 有用資源
- Haskell - 討論
Haskell - 概述
Haskell 是一種函數語言程式設計語言,專門設計用於處理符號計算和列表處理應用程式。函數語言程式設計基於數學函式。除了 Haskell 之外,其他一些遵循函數語言程式設計正規化的流行語言包括:Lisp、Python、Erlang、Racket、F#、Clojure 等。
在傳統程式設計中,指令被視為以特定語法或格式的一組宣告,但在函數語言程式設計中,所有計算都被視為單獨數學函式的組合。
用 Haskell 進行函數語言程式設計
Haskell 是一種廣泛使用的純函式式語言。這裡,我們列出了一些使 Haskell 比其他傳統程式語言(如 Java、C、C++、PHP 等)更特殊的幾個方面。
函式式語言 - 在傳統程式語言中,我們指示編譯器執行一系列任務,這無非是告訴你的計算機“做什麼”和“如何做”。但在 Haskell 中,我們將告訴計算機“它是什麼”。
惰性求值 - Haskell 是一種惰性語言。所謂惰性,是指 Haskell 不會無緣無故地計算任何表示式。當求值引擎發現需要計算某個表示式時,它會建立一個thunk 資料結構來收集該特定求值所需的所有資訊以及指向該thunk 資料結構的指標。只有當需要計算該特定表示式時,求值引擎才會開始工作。
模組化 - Haskell 應用程式只是一系列函式。可以說,Haskell 應用程式是許多小型 Haskell 應用程式的集合。
靜態型別 - 在傳統程式語言中,我們需要定義一系列變數及其型別。相反,Haskell 是一種型別推斷語言。所謂型別推斷語言,是指 Haskell 編譯器足夠智慧,可以推斷出宣告的變數的型別,因此我們不需要顯式提及所用變數的型別。
可維護性 - Haskell 應用程式是模組化的,因此維護它們非常容易且經濟高效。
函式式程式更具有併發性,並且它們遵循並行執行以提供更準確和更好的效能。Haskell 也不例外;它已被開發成可以有效地處理多執行緒。
Hello World
這是一個簡單的例子,用於演示 Haskell 的動態性。請看下面的程式碼。我們只需要一行程式碼就可以在控制檯上列印“Hello World”。
main = putStrLn "Hello World"
一旦 Haskell 編譯器遇到上述程式碼,它就會立即產生以下輸出:
Hello World
在本教程中,我們將提供大量示例來展示 Haskell 的強大功能和簡潔性。