簡體   English   中英

多模式匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM