[Haskell-cafe] Determining all rotations (Was: Haskell problem please help)

Jon Fairbairn Jon.Fairbairn at cl.cam.ac.uk
Thu Dec 16 11:30:51 EST 2004


On 2004-12-16 at 17:00+0100 Henning Thielemann wrote:
> 
> > imranazad wrote:
> > > Hi,
> > > 
> > > im not very good with haskell, i barely know the
> > > basics, my coursework requires me to genereate a
> > > vigenere square.......  well anyway at the moment im
> > > trying to define a functin all_rotations which for any
> > > list returns the list of all its rotations, so far
> > > i've made an attempt but it only rotates once....any
> > > ideas? i dont want the complete solution just help
> > > thats all, much appreciated.
> > > 
> > > all_rotations :: [a] -> [[a]]
> > > all_rotations [] = []
> > > all_rotations (x:xs) = reverse  (x:xs) : []
> 
> 'cycle' the list, then determine all of its suffixes with
> 'tails' and take the first elements of each list.

playing with inits l `zip` tails l might also be edifying.


-- 
Jón Fairbairn                                 Jon.Fairbairn at cl.cam.ac.uk




More information about the Haskell-Cafe mailing list