[Haskell-cafe] Rotating matrices

2006-06-15 Thread Thomas Sutton
Dear list, I'm currently engaged in an attempt to wrap my head around type arithmetic. To make sure that I've understood, I plan to write a few operations on matrices a la Oleg's Number Parameterised Types. Before I get down to it, I've been making sure I know how to implement the operati

Re: [Haskell-cafe] Rotating matrices

2006-06-15 Thread Henning Thielemann
On Thu, 15 Jun 2006, Thomas Sutton wrote: Today I've been looking at rotating matrices, i.e: taking a column-wise matrix and making it row-wise and, in the process, swapping the dimensions (thus a 3*2 matrix becomes a 2*3 matrix). You mean 'matrix transposition' which is available as Data.Li

Re: [Haskell-cafe] Rotating matrices

2006-06-15 Thread Stefan Holdermans
Thomas, > rotate' :: [[a]] -> [[a]] > rotate' [] = [] > rotate' xs = (map (head) xs ):(rotate' $ filter (not . null) $ map (tail) xs) which seems to work just fine. While this solution is adequate (it seems to work for infinite structures as well, which is good), I originally set out to

Re: [Haskell-cafe] Rotating matrices

2006-06-16 Thread David House
On 15/06/06, Stefan Holdermans <[EMAIL PROTECTED]> wrote: transpose = foldr (zipWith (:)) (repeat []) While one-liners like this are very pretty, it's worth thinking about how they work: 1. (:) takes an element and a list and prepends that element to the list. 2. zipWith (:) takes a list of