generated at
Alternative型クラス
型クラスの一つ




定義
hs
class Applicative f => Alternative f where -- | The identity of '<|>' empty :: f a -- | An associative binary operation (<|>) :: f a -> f a -> f a -- | One or more. some :: f a -> f [a] some v = some_v where many_v = some_v <|> pure [] some_v = (fmap (:) v) <*> many_v -- | Zero or more. many :: f a -> f [a] many v = many_v where many_v = some_v <|> pure [] some_v = (fmap (:) v) <*> many_v
empty
Monoid型クラス mempty に相当
Monoid型クラス mappend に相当
|| と同じ要領で、左がNothingのときだけ右を評価する
hs
import Control.Applicative main = do print $ Just 1 <|> Nothing -- 左のみ print $ Nothing <|> Just 2 -- 左→右



Alternative型クラスを実装している型
Maybe
STM
etc.