Ints上的模式匹配

use*_*596 3 haskell types functional-programming function pattern-matching

我是学习Haskell的初学者,我想知道你是否可以Int像这样模式匹配:

 add x 0 = x
 add x (1 + y) = 1 + x  + add x y,
Run Code Online (Sandbox Code Playgroud)

或者也许这样:

 add x 0 = x
 add x (successor y) = 1 + x + add x y
Run Code Online (Sandbox Code Playgroud)

mni*_*iip 13

有一个扩展可以让你这样做,但你应该简单地模式匹配y,并1手动减去:

add x y = 1 + x + add x (y - 1)
Run Code Online (Sandbox Code Playgroud)

调用扩展名NPlusKPatterns.如果你真的想要使用它(请记住它在haskell 2010中已被弃用),可以通过将-XNPlusKPatterns参数传递给GHC或将{-# LANGUAGE NPlusKPatterns #-}文件放在文件的顶部来启用它.