[Haskell-beginners] Fundamentals of List Comprehension and Recursion
cody.haberkorn at gmail.com
Tue Jan 3 04:07:35 CET 2012
I high school programmer and just started learning Haskell. Haskell so far
seems to be an awesome language. I began reading "Learn you Haskell for a
Great Good!" I am confused with list comprehension, as I am coming from an
imperative programming language (Java). From my understanding,
list comprehension is synonymous to Java's for-loop and what not.
let xs = [1,2,3,4,5]
[x | x <- xs]
I believe it is saying that "bound x to xs, and do (print) x."
let rightTriangles' = [ (a,b,c) | c <- [1..10] , b <- [1.. c], a <- [1..
b], a^2 + b^2 == c^2, a+b+c == 24]
ghci > rightTriangles'
[(6 ,8 ,10)]
I believe it is saying "store c with the numbers 1-10, b is length of c,
and a is the length of b. Print the answer (a,b,c) which satisfies a^2 +
b^2 == c^2, a+b+c == 24.
It may seem that I am answering my own question, but when it becomes more
complicated or I am ask to do specific tasks that involves list
comprehensions, I do not know how to read or compose one.
Second, can someone do a line by line breakdown of this code? The book does
a sub-par job explaining it.
-- Creating our own sum function
sum ' :: (Num a) => [a] -> a
sum '  = 0
sum ' (x:xs) = x + sum ' xs
Summed up: How did you learn Haskell and how long did it take before you
became competent? This is my second day and I am already running into
problems. I have to re-read things where as Java it came easy to me. Any
book or tutorials? Can someone explain list comprehension and my recursion
p.s The questions so far have been over my head (is this a " true
beginner's email list"?), I'll try to answer what I can.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners