Hi.

Your function gets passed numbers one by one in the place of x, and its previous result in the place of acc, and it returns a Bool. Initial value in place of acc parameter ("previous result") is put as False (since you begin with answer "no" to question "is it elem?").

Hope this helps.

24 вер. 2015 19:04 "goforgit ." <teztingit@gmail.com> пише:
I understand that with the function

sum'
 :: (Num a) => [a] -> a

sum' = foldl (+) 0

the call

ghci>>> sum' [1,2,3]

will be evaluated as

0 + 1 + 2 + 3 = 6

But what about the function

elem'
 :: (Eq a) => a -> [a] -> Bool 
elem' y ys = foldl (\acc x -> if x == then True else acc) False ys

and calling it with

ghci>>> elem' 3 [1,2,3]

How is that evaluated to True by foldl in elem'?

Thanks in advance for any explanation to this!

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners