[英]Multiple pattern match
您好,有人可以解釋一下我如何在Haskell中執行以下操作:
f :: Char -> Bool
f 'a' = someMethod
f 'b' = someMethod
f 'c' = someMethod
f _ = someOtherMethod
我可以做某種類似於@
模式的事情嗎:
f :: Char -> Bool
f x@(pattern1 || pattern2 ...pattern n) = sameMethod x
基本上我想對多個模式應用相同的方法,這可能嗎? 我不想編寫基本上執行相同操作的N個模式匹配行。
PS我要實現的方法如下:
readContent::String->Maybe [Double]
readContent (x:xs)=go [] [](x:xs) where
go _ ls [] =if length length ls > 0 then Just ls else Nothing
go small big (x:xs)= case x of
'}' -> Just (small:big) -- i want some other pattern here too
',' -> go [] small:big xs
t@(_) -> go t:small big xs
我正在解析一個可以用}
, {
和,
分隔的String
。 對於}
和{
我想應用相同的方法。
在這個特定的示例中,您可以使用防護 :
f :: Char -> Bool
f x | x `elem` "abc" = someMethod
f _ = someOtherMethod
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.