myMap :: (a -> b) -> [a] -> [b] myMap f lst = myReverse (iter [] lst) where iter lst1 [] = lst1 iter lst1 (x:xs) = iter (f x : lst1) xs myReverse :: [a] -> [a] myReverse lst = iter [] lst where iter lst1 [] = lst1 iter lst1 (x:xs) = iter (x:lst1) xs