【发布时间】:2017-03-16 22:57:04
【问题描述】:
我是 Haskell 的新手,我被一个例子困住了。我想尝试一下 Maybe 类型,但我的代码无法编译:
divide100By :: Int a -> Maybe a
divide100By x = case (Int x) of
Nothing -> Nothing
Just x -> 100 / x
main = putStrLn ("Result: " ++ show (divide100By 5))
但我总是收到错误:
Not in scope: data constructor 'Int'
恐怕我不太明白 Haskell 中的函数定义(divide100By :: Int a -> Maybe a part)...有人可以告诉我这里有什么问题吗?
【问题讨论】:
-
Int不接受类型参数,因此您需要divide100By :: Int -> Maybe Int。你的函数体还有至少 3 个其他问题...