我有一个关于 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/