在 Elm 中使用单个语句处理多个匹配案例

Handling multiple match cases with single statement in Elm

我知道在 Scala 中你可以用一个表达式处理多个模式,在 Elm 中是否可以这样?

l match {
    case B(_) | C(_) => "B"
}

在 Elm 中,您一次只能匹配一个模式,除非您在下划线字符上进行模式匹配,这会捕获所有字符。

case l of
    B _ -> "B"
    C _ -> "B"
    ...

-- or...
case l of
    ...
    _ -> "B"

如果你有比字符串更复杂的东西,最好将它拉到它自己的函数中:

let
    doB -> "B"
in
    case l of
        B _ -> doB
        C _ -> doB
        ...

您可以执行类似以下操作

sample expression = 
    case expression of
        Case1 -> "String"
        Case2 -> sample Case1
        Case3 -> sample Case1