在 Haskell 中,編譯程式的執行從main在 module中執行開始Main。這個函式必須是型別IO ()。
哪個標準或參考定義了上述內容?
比較C (參考 C11 標準 (ISO/IEC 9899:2011) 5.1.2.2.1 程式啟動 (p: 13)):
每個 C 程式 [...] 都包含一個名為 main 的函式的定義 [...],它是程式的指定開始。
Haskell 2010和Haskell 98沒有main正式定義(盡管有幾個函式的例子叫做main),而是說:
我們把操作、解釋、編譯等 Haskell 程式的方式作為實作依賴。
GHC 用戶指南指導用戶創建一個main函式,但從未提及其所需型別或它是程式執行的開始。有對Main模塊的參考,但沒有對main函式的參考。
比較C (參考 C11 標準 (ISO/IEC 9899:2011) 5.1.2.2.1 程式啟動 (p: 13)):
每個 C 程式 [...] 都包含一個名為 main 的函式的定義 [...],它是程式的指定開始。
哪個標準或參考表明這main是 Haskell 程式執行的開始?
uj5u.com熱心網友回復:
Haskell程式是一組模塊,按照慣例,其中一個必須被呼叫
Main并且必須匯出值main。程式的值main是模塊中識別符號的值Main,它必須是IO τ某種型別的型別計算τ(參見第7章)。當程式被執行時,計算main被執行,并且它的結果(型別τ)被丟棄。
https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#dx11-98001
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/468442.html
上一篇:從Azure函式應用程式連接到SQLDB時找不到SqlException服務器錯誤
下一篇:我怎樣才能設法從單子變壓器列印
