我有一个关于haskell的初学者问题:如何分离例如案例表达式的多个模式以便将它们分成一行?例如,我想写一个定义
f x = case x of Nothing -> ""
Just _ -> "123"
Run Code Online (Sandbox Code Playgroud)
成一条线?如何才能做到这一点?是分离标志吗?非常感谢您的任何帮助!
虽然你可以在一条线上做到这一点,我可能不建议吗?
有这个可爱的功能maybe,看起来像
maybe :: b -> (a -> b) -> Maybe a -> b
Run Code Online (Sandbox Code Playgroud)
哪个有点像
maybe f c (Just x) = f x
maybe f c Nothing = c
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下它就是这样
f x = maybe "" (const "123") x
f = maybe "" $ const "123"
Run Code Online (Sandbox Code Playgroud)
您可以使用分号(;)来分隔这样的情况:
f x = case x of Nothing -> ""; Just _ -> "123"
Run Code Online (Sandbox Code Playgroud)
你可以使用通常的分号:
f x = case x of Nothing -> "" ; Just _ -> "123"
Run Code Online (Sandbox Code Playgroud)
但我强烈建议使用它,它对可读性没有帮助.
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |