[Haskell-cafe] what are the points in pointsfree?
cgibbard at gmail.com
Fri Dec 15 19:17:36 EST 2006
On 15/12/06, Scott Brickner <scottb at brickner.net> wrote:
> Donald Bruce Stewart wrote:
> 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! :)
> 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
> and functions between those spaces. So a 'points-free' definition of a
> is one which does not explicitly mention the points (values) of the space
> which the function acts. In Haskell, our 'space' is some type, and 'points'
> 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.
More information about the Haskell-Cafe