[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