【发布时间】:2013-03-21 10:36:59
【问题描述】:
只是一个我无法解决的简单问题 我试图通过以下代码获得maybe_divide作为分配所需,但是终端给我一条错误消息
test2.hs:1:112: 模式中的解析错误:(Just x)
maybe_devide :: Maybe Float -> Maybe Float -> Maybe Float
maybe_devide maybeX maybeY = case maybeX maybeY of
(Just x) (Just y)
|x/=0 && y/=0 -> Just (div x y)
|x=0 && y/=0 -> Just 0
|x/=0 && y=0 -> Nothing
Nothing (Just y) -> Nothing
(Just x) Nothing -> Nothing
谁喜欢告诉我它有什么问题? 谢谢
【问题讨论】:
-
maybeDivide mx my = do x <-mx; y <- my; guard (y /= 0); return (div x y) -
为什么将
x=0作为特例?顺便说一句,应该是==。 -
哈哈,这是个意外,我刚发完这个问题就改了,
-
@augustss,对不起,我在 haskell 中没有走这么远,所以我不知道 return 和
标签: haskell pattern-matching maybe