fruit
是 Maybe 类型apple
并且很甜(用函数testSweet
测试),则触发流程Afruit
什么都没有,则进行过程B这是虚拟代码,
case fruit of
Just apple ->
if testSweet apple then
<ProcessA>
else
<ProcessB>
Nothing ->
<ProcessB>
但是这里看起来重复,有什么方法可以解决这个问题吗?我认为最佳方式应该是代码中只有一个
<ProcessB>
。
您可以使用守卫和包罗万象的后备:
case fruit of
Just apple | testSweet apple ->
<ProcessA>
_ ->
<ProcessB>