在Elm中,有没有办法像Haskell那样将函数的参数与多个定义进行模式匹配?
哈斯克尔的例子:
factorial :: Int ->
factorial 0 = 1
factorial n = n * factorial (n - 1)
Elm 中没有与该语法等效的语法。
实现类似行为的最简单方法是将模式匹配与case
语句一起使用。
请考虑以下示例:
factorial : Int -> Int
factorial n =
case n of
0 ->
1
_ ->
n * factorial (n - 1)
上面示例中的_
用作通配符以匹配任何模式,在这种情况下,它是与0
不同的任何整数