[Haskell-cafe] Code generated by pointfree does not compile
lrpalmer at gmail.com
Thu Nov 5 17:59:46 EST 2009
On Thu, Nov 5, 2009 at 4:46 AM, Boris Lykah <lykahb at gmail.com> wrote:
> 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])
More information about the Haskell-Cafe