[Haskell-cafe] what are the points in pointsfree?

Cale Gibbard 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:
>  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

More information about the Haskell-Cafe mailing list