
On 2008 Dec 6, at 18:13, Simon Michael wrote:
I don't yet know what a hylomorphism is and thought your pointless- haskell package might be one of those semi-joke projects, but now I wonder if it's something that I'll need in order to use (G)Hood with real-world code.
Not a joke. People who reason about programs (more of a mathematical discipline than a programming one) like to use the tools of category theory (a generalization of set theory). At the category-theoretical level, the important parts of Haskell are functors (functions that operate on functions; they perform transformations on types) and types (equivalent to sets); values don't actually appear anywhere, they stay hidden inside types. So to use those tools, you need to remove the values; values are also known as "points", hence "point-free" or "point-less" (a bit of a joke, that) programming. Morphisms (catamorphism, hylomorphism, etc.) are category-theoretical transformations, which are represented in Haskell as functors. Many common functional "patterns" are derived from these reflections of category theory transformations in the language. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH