tail-rec map haskell
public text v1 · immutablemyMap :: (a -> b) -> [a] -> [b]
myMap f [] = []
myMap f lst = myReverse (iter f [] lst)
where
iter f lst1 [] = lst1
iter f lst1 (x:xs) = iter f ((f x):lst1) xs
myReverse :: [a] -> [a]
myReverse [] = []
myReverse lst = iter [] lst
where
iter lst1 [] = lst1
iter lst1 (x:xs) = iter (x:lst1) xs