2017-01-14 23 views
-2

如果我有一個功能,例如更一般的模式匹配

f :: Int -> Int -> Int 
f x y = x + y 

要基於所述參數,以具有不同的功能,我使用模式匹配。
我只找到了如何與具體值匹配的語法,例如

f 0 y = y 

是否有可能匹配更一般的東西?
我想在第一個參數小於0的情況下具有不同的功能。第二種情況可能是如果第二個參數超過某個值。

回答

2

您可以使用衛士:

f x y | x < 0 = ... 
f x y | y > someValue = ... 
f x y | otherwise = ... 
2

當然,還有一個用於調用guards機制:

f x y | x < 0 = y