Re: [Haskell-cafe] Fair diagonals (code golf)

2009-11-12 Thread mf-hcafe-15c311f0c
On Wed, Nov 04, 2009 at 07:01:50PM +0100, Sjoerd Visscher wrote: > To: Haskell Cafe > From: Sjoerd Visscher > Date: Wed, 4 Nov 2009 19:01:50 +0100 > Subject: Re: [Haskell-cafe] Fair diagonals (code golf) > > The code by Twan can be reduced to this: > > diagN = conca

Re: [Haskell-cafe] Fair diagonals (code golf)

2009-11-04 Thread Sjoerd Visscher
The code by Twan can be reduced to this: diagN = concat . foldr f [[[]]] f :: [a] -> [[[a]]] -> [[[a]]] f xs ys = foldr (g ys) [] xs g :: [[[a]]] -> a -> [[[a]]] -> [[[a]]] g ys x xs = merge (map (map (x:)) ys) ([] : xs) merge :: [[a]] -> [[a]] -> [[a]] merge [] ys = ys merge xs [] = xs merge