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 的強大功能和簡潔性。

廣告
© . All rights reserved.