我有一个关于haskell的初学者问题:如何分开例如案例表达式的多个模式,以便将它们放在一行中?例如,我想写一个定义
f x = case x of Nothing -> ""
Just _ -> "123"
成一行?如何才能做到这一点?是分离标志吗?非常感谢您的任何帮助!
答案 0 :(得分:8)
虽然你可以在一行上做到这一点,但我可以建议吗?
这个名为maybe
的可爱函数看起来像
maybe :: b -> (a -> b) -> Maybe a -> b
其中有点像
maybe f c (Just x) = f x
maybe f c Nothing = c
所以在你的情况下它只是
f x = maybe "" (const "123") x
f = maybe "" $ const "123"
答案 1 :(得分:7)
您可以使用分号(;
)来分隔这样的案例:
f x = case x of Nothing -> ""; Just _ -> "123"
答案 2 :(得分:6)