Why is the pointless style called free point to Haskell when it is full of points? Where the term & ldquo; Point-free & rdquo; Comes from?


I am currently reading Learn You a Haskell for Great Good and I came across the notion "point-free style" on page 85 as shown below. However, the fn function is full with points! This confuses me.

  • Why is this style of writing functions called "point-free" when it is full with points ?

  • How should I understand this notion ? "Point-free" in what sense ?

  • Where is the term "point-free style" originates from ? Perhaps from a language where function composition was denoted by space ?

PS: So far this is the only confusing part in this excellent book (i.e. in the first 85 pages I have read so far).

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. In the declaration f x = x + 1 we define the function f in terms of its action on an arbitrary point x. Contrast this with the points-free version: f = (+ 1) where there is no mention of the value on which the function is acting.

from haskellwiki