AK
Size: a a a
AK
AK
at
AP
AP
AP
f
будет один раз применяться к каждому элементуAP
AP
takeWhileMap : (a -> Maybe b) -> List a -> List b
takeWhileMap f src =
Tuple.second
(List.foldl
(\item acc ->
case acc of
( True, res ) ->
case (f item) of
Just val -> ( True, res ++ [ val ] )
Nothing -> ( False, res )
( False, res ) -> acc)
( True, [] )
src)
AP
AP
AP
λ> import Data.Maybe
λ> import Data.List
λ> let collect f = catMaybes . takeWhile isJust . map f
λ> :t collect
collect :: (a1 -> Maybe a) -> [a1] -> [a]
AP
AK
f
всё равно вызывается с атрибутом 9
, напримерAP
AP
AK