繁体   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