5
`のために私は最近、ジェネリックControl.Applicative.optional
コンビネータつまずいてきました:非パーサの例はControl.Applicative.optional`
optional :: Alternative f => f a -> f (Maybe a)
optional v = Just <$> v <|> pure Nothing
が、私はずっとそのコンビネータのための実用的な使用をしないでください。例えばこのようなリストやMaybe
純粋なファンクタに適用された場合、結果は非常に便利なように見えるしません:
> optional [1,2,3]
[Just 1,Just 2,Just 3,Nothing]
> optional Nothing
Just Nothing
> optional (Just 1)
Just (Just 1)
...何がoptional
のより賢明な用途でしょうか?
まあ、パーサーは気にしています:) –
最近、Cafeには、オプションのものと同じユースケース、つまりパーサーと「失敗する可能性のあるもの」を持つ「some」と「many」について長い議論がありました。 .. http://www.haskell.org/pipermail/haskell-cafe/2011-12/12/097476.html –