के लिए मैं हाल ही में सामान्य Control.Applicative.optional
Combinator से अधिक ठोकर खाई है:गैर पार्सर उदाहरण `Control.Applicative.optional`
optional :: Alternative f => f a -> f (Maybe a)
optional v = Just <$> v <|> pure Nothing
लेकिन मैं बहुत कि Combinator के लिए व्यावहारिक उपयोग न करें; जैसे जब ऐसी सूची या Maybe
के रूप में शुद्ध functors के लिए आवेदन किया है, परिणाम बहुत उपयोगी नहीं प्रतीत होती हैं:
> optional [1,2,3]
[Just 1,Just 2,Just 3,Nothing]
> optional Nothing
Just Nothing
> optional (Just 1)
Just (Just 1)
... होगा क्या optional
के अधिक समझदार अनुप्रयोगों?
खैर, पार्सर्स दिमाग में वसंत :) –
हाल ही में कैफे पर 'कुछ' और 'कई' के बारे में एक लंबी चर्चा हुई थी, जिसका उपयोग 'वैकल्पिक', यानी पार्सर्स और "चीजें जो असफल हो सकती हैं" के समान उपयोग मामलों में होती हैं। .. http://www.haskell.org/pipermail/haskell-cafe/2011- दिसम्बर/097476.html –