In search of: [a->b] -> a -> [b]

Keith Wansbrough Keith.Wansbrough@cl.cam.ac.uk
Wed, 18 Jun 2003 11:34:29 +0100


> >or breakin' out the point-free style,
> >   flist = flip (map . flip ($)) -- okay, so I wouldn't recommend this
> 
> I keep on reading about this "point free style", but can't find any 
> discussion of it.  Are there any pointers (sic) ?

Search for "Squiggol" or "Bird-Meertens Formalism".  A group of
functional programmers at Oxford.  (Richard Bird and Lambert Meertens
are the ones the formalism was named after).

I see some citations of
  Backus, J. 1978. "Can Programming Be Liberated from the von Neumann
  Style? A Functional Style and Its Algebra of Programs," Communications
  of the Association for Computing Machinery 21:613-641.
which appears to be available (as a scan) at, amongst others,
  http://www.stanford.edu/class/cs242/readings/backus.pdf

Another source is

  http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/index.html#radix

(Jeremy Gibbons introduced me to the concept when I was an
undergraduate).

This is an introduction to Squiggol:

  http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/index.html#squiggolintro

This style underlies a lot of expert Haskeller's intuitions.  The mass
of cute symbols can drive you crazy, though... see Erik Meijer et
al.'s paper _Functional Programming with Bananas, Lenses, and Barbed
Wire_:

  http://www.cse.ogi.edu/~erik/Personal/classic.htm

Hope this helps.

(going on the Wiki as PointFreeStyle, linked from CommonHaskellIdioms).

--KW 8-)