Maybeを使ったfoldr
普通のfoldrの第1,2引数を、1つの引数で表現している 定義
code:hs
foldr :: (Maybe (a, b) -> b) -> a -> b foldr f [] = f Nothing
foldr f (x:xs) = f (Just (x, foldr f xs))
使用例
sum関数を定義する
code:hs
{-# LANGUAGE LambdaCase #-} sum = foldr $ \case
Just (cur, acc) -> cur + acc
Nothing -> 0