可能性の重複:それは作品Haskellのリスト内包で非網羅的なパターン
Prelude> [a | Just a <- [Just 10, Nothing, Just 20]] [10, 20]
:
Why don't Haskell list comprehensions cause an error when pattern match fails?
今日、私は以下のコードを見ました。しかし、私はHaskellは、Nothing
に遭遇したとき、エラー*** Exception: Non-exhaustive patterns in lambda
を発することになるために...上記のリストの内包が
[Just 10, Nothing, Just 20] >>= (\(Just x) -> return x)
...のためだけ糖衣構文であると考えました。
私の質問は:[a | Just a <- [Just 10, Nothing, Just 20]]
は(モナドコードの点で)Nothing
を無視して変換するのは何ですか?
@ephemient:ありがとう!リンクした投稿が私の質問に答えます。そして私は[another](http://stackoverflow.com/questions/7007222/haskell-list-comprehension-to-combinatory)を見つけました。質問を投稿する前に私がこれらの投稿を見つけなかったのは、問題のハスケル語である「網羅的」という言葉が含まれていないためです。 (私はStackOverflowを初めて使用していて、何をすべきか分かりませんが、この質問を削除する必要がありますか?「非「網羅的ではない」と入力している人にとっては便利です) –
削除する必要はありません。最終的には重複して閉じられます。つまり、回答のある人がここから次の人に転送する大きなリンクがあります。そして、あなたが注意しているように、それを殺すよりも周りをつかむことがより有益です:) – ephemient