リストを調べて、値4と5を見つけたら、何かをする方法はありますか?
試しfoo (4:5:xs) = <do something>
ましたが、コンパイルされません
また、4 と 5 が見つからない場合にどうなるかを説明する必要があります。
"Found"
4 と 5 を見たときは文字列を返し、それ以外の場合は文字列を返したいとします"Not found"
。次に、この関数を使用できます。
foo :: [Int] -> String
foo (4:5:xs) = "Found"
foo (_:xs) = foo xs
foo [] = "Not found"
4 と 5 が表示されないときに「何もしたくない」場合は、関数の戻り値の型を次のように変更する必要がありますMaybe String
(この例では)。
foo :: [Int] -> Maybe String
foo (4:5:xs) = Just "Found"
foo (_:xs) = foo xs
foo [] = Nothing
「見つからない」値が何であるかを覚えておく必要がないように、2 番目のバージョンを使用します。