1

リストを調べて、値4と5を見つけたら、何かをする方法はありますか?

試しfoo (4:5:xs) = <do something>ましたが、コンパイルされません

4

1 に答える 1

5

また、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 番目のバージョンを使用します。

于 2012-10-13T21:08:20.053 に答える