Canonical outer join zip function
问题 If you consider the (implicit) indexes of each element of a list as their keys, then zipWith is sort of like a relational inner join. It only processes the keys for which both inputs have values: zipWith (+) [1..5] [10..20] == zipWith (+) [1..11] [10..14] == [11,13,15,17,19] Is there a canonical corresponding function corresponding to outer join? Something like: outerZipWith :: (a -> b -> c) -> a -> b -> [a] -> [b] -> [c] outerZipWith _ _ _ [] [] = [] outerZipWith f a' b' [] (b:bs) = f a' b :