packages feed

jacinda-0.1.0.0: src/Data/List/Ext.hs

module Data.List.Ext ( imap
                     , ifilter
                     , prior
                     ) where

prior :: (a -> a -> a) -> [a] -> [a]
prior op xs = zipWith op (tail xs) xs

imap :: (Int -> a -> b) -> [a] -> [b]
imap f xs = fmap (uncurry f) (zip [1..] xs)

ifilter :: (Int -> a -> Bool) -> [a] -> [a]
ifilter p xs = snd <$> filter (uncurry p) (zip [1..] xs)