
25 Jan
2011
25 Jan
'11
3 p.m.
Hello, I am confused by the following code. I would expect results of True, False. $ ghci *Main> let f x = x 4 *Main> f(<) 3 False *Main> f(<) 5 True This came about because I was trying to refactor a sort function I wrote: mySort [] = [] mySort (h:t) = (f (<= h)) ++ [h] ++ (f (> h)) where f x = mySort (filter x t) I came up with this, which appears to work, though the comparison operators are backwards. mySort [] = [] mySort (h:t) = f(>) ++ [h] ++ f(<=) where f x = mySort (filter (x h) t) Cheers, Xavier