我有一个关于 haskell 的初学者问题:如何分离例如case 表达式的多个模式以便将它们放入一行?例如我想写一个定义

f x = case x of Nothing -> ""
                Just _ -> "123"

成一行?如何才能做到这一点?是分离的标志吗?非常感谢您的帮助!

最佳答案

虽然您可以在一行上完成此操作,但我建议不要这样做吗?

有一个叫做 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"

关于haskell - 一行多个案例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23478501/

10-16 16:15