[Haskell-cafe] How the following works

Tsunkiet Man temp.tsun at gmail.com
Tue Apr 14 05:21:14 EDT 2009


Let's see...

cinits [] = [[]]
cinits (hd:tl) = [] : [ hd : rest | rest  <- cinits tl ]

Well, ehm, I'm trying to understand "map" in "map" functions, however I do
understand list comprehensions. But I don't think I can write "any" "map" in
"map" function into a list comprehension can I?

2009/4/14 Daniel Fischer <daniel.is.fischer at web.de>

> Am Dienstag 14 April 2009 10:39:28 schrieb Tsunkiet Man:
> > Hello,
> >
> > I can hardly imagine how the following code works:
> >
> > cinits :: [a] -> [[a]]
> > cinits [] = [[]]
> > cinits (x:xs) = [] : map (x:) (cinits xs)
> >
> > can someone give me a good explaination?
>
> Perhaps it's easier to follow as a list comprehension:
>
> cinits [] = [[]]
> cinits (hd:tl) = [] : [ hd : rest | rest  <- cinits tl ]
>
> >
> > (I understand it a bit, but it's really hard for me to figure out how a
> map
> > in a map function works.)
> >
> > Thank you for your time,
> >
> > Tsunkiet
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090414/72ed094b/attachment.htm


More information about the Haskell-Cafe mailing list