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”中定义
答案 0 :(得分:5)
如果要创建可运行的可执行文件,则需要定义main :: IO ()
,这将在程序运行时执行。
答案 1 :(得分:2)
如果您使用ghc,这可能是您想要做的。做ghci yourprogram.hs
。这将允许以交互方式与您的程序进行交互。你的程序目前没有做任何事情,所以这会更有用。
答案 2 :(得分:0)
发生这种情况有两个原因:
Main
模块中。这两个原因的总和给出了错误:main
模块中没有Main
函数。
一种解决方案可能是添加main
功能:
main :: IO ()
main = return () -- do nothing
或者,替代地,将您的文件编译为库,然后将其加载到ghci
(或者只加载.hs
中的ghci
文件。在这种情况下,您应该为库提供模块名称:
module Geometry where
[...]
然后将其导入到import Geometry
使用它的位置。