[英]Where is Haskell's or GHC's main defined?
在 Haskell 中,編譯程序的執行從在模塊Main
中執行main
開始。 此函數的類型必須為IO ()
。
哪個標准或參考定義了上述內容?
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 程序執行的開始?
Haskell程序是一組模塊,按照慣例,其中一個必須稱為
Main
並且必須導出值main
。 程序的值是模塊Main
中標識符main
的值,它必須是某個類型τ
的類型IO τ
的計算(參見第7章)。 當程序被執行時,計算main
被執行,並且它的結果(類型為τ
)被丟棄。
https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#dx11-98001
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.