
On Fri, Mar 08, 2002, Ketil Z. Malde wrote:
I don't think it's either functional nor imperative by itself. The question is how you structure it, do you say something like
buffer x list y
x = readFile ... y = parse x quickSort y print y
(which would be imperative), or do you say something like
print (quickSort (parse (readFile ...)))
Unfortunately, this is wrong. You'd have to do something more like readFile ... >>= print . sort . parse
which would be functional. Note that the only really imperative part is the sorting, which actually changes the content of y for the following part of the program. A functional implementation wouldn't destroy y, but create a new list with the elements from y in sorted order.
yah.
I'm not sure if that made things clearer :-)
(If you really want to implement it, look at the Prelude for some help, some of the things you wish to do is pretty standard fare. And sorting is perhaps made easier if you rearrange the list of dates a bit?)
Sorting is probably easiest if you use the standard sort function. I'm still kind of interested in whether anyone has done work on which purely-functional sorts are efficient, and particularly which ones are efficient in GHC. David Feuer