簡體   English   中英

運行已編譯的Haskell程序:

[英]Running a compiled Haskell program:

data Figura = Circulo Float | Rectangulo Float Float


esRedondo :: Figura -> Bool
esRedondo (Circulo _) = True
esRedondo (Rectangulo _ _) = False 

area :: Figura -> Float
area (Circulo r) = pi*r*r
area (Rectangulo h b) = h*b

我收到一個錯誤: The function main在模塊Main中未定義

如果要創建可運行的可執行文件,則需要定義main :: IO () ,它將在程序運行時執行。

如果您正在使用ghc,這可能是您想做的。 ghci yourprogram.hs 這將允許與您的程序進行交互。 您的程序當前不執行任何操作,因此它將更加有用。

發生這種情況的原因有兩個:

  • 您尚未在文件中指定模塊名稱,而當您未指定模塊時,GHC會假定您位於Main模塊中。
  • 您尚未指定Haskell程序的入口點,這是main函數

這兩個原因的總和就是錯誤: Main模塊中沒有main函數。

一種解決方案是添加main功能:

main :: IO ()
main = return () -- do nothing

或者,也可以將文件編譯為庫,然后將其加載到ghci (或僅將.hs文件加載到ghci )。 在這種情況下,您應該為您的庫指定模塊名稱:

module Geometry where
[...]

然后將其import Geometry到與import Geometry

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM