In relation to the recent discussion about efficiencies
vs. reduction count, timing, etc.
Module Orthogonals has been completely revised,
enhanced and generalized:
(http://www.numeric-quest.com/haskell/Orthogonals.html)
Excerpt:
-------
Arrays - with their indexing schemes and destructive
updating are basic tools of imperative programming. But pure
functional languages, which prohibit variable reassignments,
cannot compete with imperative languages by using the same tools
and following similar resoning and patterns.
With this in mind, we are attempting to demonstrate
here that the standard indexing traps can be successfully avoided.
This module implements afresh several standard problems from
linear algebra. Standard Haskell lists are employed instead of
arrays and not a single algorithm ever uses indexes for lookups or
updates.
We do not claim high efficiency of these algorithms;
consider them exploratory. However, we do claim that the clarity
of these algorithms is significantly better than of those
functionally similar algorithms, which employ indexing schemes.
Jan