
On Tuesday 25 January 2011 21:15:04, Xavier Shay wrote:
Thanks to all responses. Makes sense now. For the record I have ended up with this:
mySort [] = [] mySort (h:t) = f(<=) ++ [h] ++ f(>) where f x = mySort (filter (not . x h) t)
I have a feeling I may be able to make the following work with some sort of type declaration but I haven't really learned much about them yet so I will revisit later. (At the moment it does not compile.)
mySort [] = [] mySort (h:t) = f(<=) ++ [h] ++ f(>) where f x = mySort (filter (h x) t)
Well, h is not a function, so (h x) isn't well formed. You want a left operator section there, so you have to make the function x infix: where f x = mySort (filter (h `x`) t) Backticks turn ordinary prefix functions into infix functions, a `mod` b === mod a b
Cheers, Xavier