2-pivot quicksort
This posting on the Java core library mailing list proposes to replace the current quicksort with a new, 2-pivot quicksort.
Ordinary quicksort in Haskell looks something like this:
quicksort [] = []
quicksort (pivot:rest) =
quicksort [x| x ← rest, x ≤ pivot] ++
[pivot] ++
quicksort [x| x ← rest, [...]
So, I have merged the obsolete-syntax into the code from the last post. This has resulted in shorter, cleaner, faster validation which is also more correct.
I didn’t like the fact that in the old code there were places where explicit try points needed to be included. It seems that these arose because the ‘obsolete’ syntax [...]
Update: See the better code in the next post.
In recent times there have been several calls for websites to properly validate email addresses. Invariably, the compiled regex from Perl’s RFC822 is pasted up as The Way To Do It. The problem with this is (as the source code from the Perl module notes) is that [...]
Dan Piponi’s latest post “Beyond Monads” has prompted some wonderment (and forehead-slapping). For example:
How did we all miss that before?
—Peaker
The answer (of course!) is that while we might have, they didn’t. For example, Edward Kmett’s category-extras package has had Control.Monad.Indexed available for use in Haskell since early last year, while the concept for its [...]