
On 15/12/06, Scott Brickner
Donald Bruce Stewart wrote: sdowney:
i'm not naive enough to think they are the composition function, and i've gathered it has something to do with free terms, but beyond that i'm not sure. unless it also has something to do with fix points?
The wiki knows all! :)
http://haskell.org/haskellwiki/Pointfree
1 But pointfree has more points!
A common misconception is that the 'points' of pointfree style are the (.) operator (function composition, as an ASCII symbol), which uses the same identifier as the decimal point. This is wrong. The term originated in topology, a branch of mathematics which works with spaces composed of points, and functions between those spaces. So a 'points-free' definition of a function is one which does not explicitly mention the points (values) of the space on which the function acts. In Haskell, our 'space' is some type, and 'points' are values.
Hm. I've been lurking for a while, and this might be a bit of nit-picking as my first post, especially given I'm still a bit of a n00b in Haskell. I've been programming a long time, though - coming up on three decades now and virtually all of it really programming, no management.
Anyway, as I understood it, the "points" were the terminal objects of the category in which you're working - in this case, pointed continuous partial orders (CPO), and the points are effectively values in the domain. The usage of "point" for terminal objects comes from the category of topological spaces, as you say,. and algebraic topology is where category theory found it's first big home - but that's not really what we're talking about here, is it?
The point that the wiki article is trying to make is that the term "points-free" was first used in the context of algebraic topology, and generalised quickly from there. This may have even been before people were making the generalisation from elements of a set with a topology on it to maps from a terminal object to the space in question. It's a bit of a coincidence that the theory which we're using to describe the semantics of programs is topological in nature, the term would likely have found use here without that. - Cale