
5 Nov
2009
5 Nov
'09
5:59 p.m.
On Thu, Nov 5, 2009 at 4:46 AM, Boris Lykah
Hi all!
I was playing with pointfree tool from hackage and found that it produces wrong code for some functions which use list comprehension.
Here are several examples:
:main f x = concat [x:f x| x<-[0..x-1]] f = fix ((join .) . flip flip [] . ((:) .) . ap (:) . (`ap` (enumFromTo 0 . subtract 1)) . ((<-) .) . ((|) =<<)) This does not compile because (<-) and (|) are used as functions whereas they are not.
Looks like pointfree doesn't understand list comprehension syntax. Convert to normal functional notation instead: main f x = concat (map (\x -> x : f x) [0..x-1]) Luke