支持 Elm 中的功能模式匹配
Support for functional pattern matching in Elm
在 Elm 中,是否有一种方法可以将函数的参数与多个定义进行模式匹配,例如 Haskell?
示例来自 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
的任何整数
在 Elm 中,是否有一种方法可以将函数的参数与多个定义进行模式匹配,例如 Haskell?
示例来自 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