I was reading the introduction at http://www.haskell.org/haskellwiki/Introduction where the typical Haskell version of qsort is given
qsort [] = [] qsort (x:xs) = qsort (filter<http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:filter> (< x) xs) ++<http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:.> [x] ++<http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:.>qsort (filter<http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:filter> (>=<http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:>=>x ) xs which is then compared to the inplace C version, showing off how much shorter the Haskell version is. However, the page also has a link to a "semi-direct" translation of the C version, which then brings the user to all kinds of confusing threads and texts, like *"**Unfortunately none of the above "real" quicksorts seems to compile as given, when copy/pasted into ghci. Can someone fix? The "parallel" quicksort gave error "unknown package concurrent" when I ran make in quicksort/gransim. Has anyone got a functioning "real" quicksort that works on copy/paste? The program below is working very very slowly. It's probably slowsort... :o)"* * * Furthermore the inplace versions of qsort in Haskell are IMO less readable than the C version. I'm not sure but if I would be a beginner I might get confused by this. It is often claimed that compiler technology will make it possible to compile high level code into efficient low level code that is almost as efficient as the C or asm routines. How does this apply to qsort today? Cheers, Peter Verswyvelen
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe