You may also find this function helpful. I'll let you work out why/how:
uncurry :: (a - b - c) - (a, b) - c
uncurry f p = f (fst p) (snd p)
On 9/13/07, Krzysztof Kościuszkiewicz [EMAIL PROTECTED] wrote:
On Fri, Sep 14, 2007 at 03:45:02AM +0100, PR Stanley wrote:
5. Using merge, define a
Hi
Taken from chapter 6, section 8 of the Hutton book on programming in Haskell:
5. Using merge, define a recursive function
msort :: (Ord a) = [a] - [a]
that implements merge sort, in which the empty
list and singleton lists are already sorted, and
any other list is sorted by merging together
Define a merge function that merges two sorted lists into a sorted list containing all the elements
of the two lists. Then define the msort function, which will be recursive.
Mike
PR Stanley wrote:
Hi
Taken from chapter 6, section 8 of the Hutton book on programming in
Haskell:
5. Using
I'm not sure. We start with one list and also,
perhaps I should have mentioned that I have a
merge function which takes two sorted lists with
similar, now, what do they call it, similar
orientation? and merges them into one sorted list.
e.g. merge [1, 4,] [2, 3]
[1,2,3,4]
Cheers, Paul
At
OK, you have the split function, and you have the merge function, and now you have to define the
msort function. First write down the base cases (there are two, as you mention), which should be
obvious. Then consider the remaining case. Let's say you split the list into two parts. Then what
On Fri, Sep 14, 2007 at 03:45:02AM +0100, PR Stanley wrote:
5. Using merge, define a recursive function
msort :: (Ord a) = [a] - [a]
that implements merge sort, in which the empty
list and singleton lists are already sorted, and
any other list is sorted by merging together the
two lists