Combinators
A Centennial View
Combinators is a personalized examination of a programming language concept, seen within its historical context.
In Stephen Wolfram’s Combinators, the significance of abstract programming language concepts are viewed through a modern lens.
In programming languages, combinators are used to combine other functions in useful relationships. Wolfram writes that his new Wolfram Language emphasizes symbolic computation and may be among the first to utilize combinators. Combinators, he says, were first thought up in the early 1920s; they fell out of favor, but a hundred years later, reflections on their creation, utilization, and potential use in modern programming are of interest.
Accompanying Wolfram’s information about combinators is an extensive look at the inventor of the logic that led to the creation of combinators, Moses Schönfinkel, which is supported with historical documents. Schönfinkel is revealed as a fascinating, near forgotten figure with a brilliant mind and a unique personality.
The book’s interesting thesis is that modern computing would be different had early programmers and mathematicians used universal computation built on combinators. Supporting this notion are ideas about how systems could be built, and what solutions would be like, using such an alternative methodology. The examples are supported by detailed graphs and visualizations that show the functionality and the efficiency of each. And all of this work is done from the perspective of the Wolfram Language’s creator, who researched the concept and sought to integrate combinators within the new language.
Still, much of the book is dedicated to an ambiguous arrangement of concepts, and is aimed at subject matter experts most. The section on Schönfinkel is split between the search for information on him and his contemporaries, but without a clear sense of why it has been included in the book itself. And the book’s casual yet academic style is simultaneously learned and eager; when considered against the book’s textbook-style visuals and other documentation, its tone is jarring. Further, that the visual material takes up several pages between a handful of sentences makes the complex surrounding work more difficult to parse.
Because the book is aimed at audiences with strong knowledge of programming languages and mathematics, its concepts aren’t explained for a wider audience; still, they are vital to understanding and following it. Most accessible are the Schönfinkel biography and the book’s supplemental sections. And included in the text is reference to a challenge with a hefty cash prize for anyone who can prove a specific use of combinators to solve the given problem, encouraging fellow programmers to tackle the problem and bring combinators into the mainstream.
Combinators is a personalized examination of a programming language concept, seen within its historical context.
Reviewed by
John M. Murray
Disclosure: This article is not an endorsement, but a review. The publisher of this book provided free copies of the book and paid a small fee to have their book reviewed by a professional reviewer. Foreword Reviews and Clarion Reviews make no guarantee that the publisher will receive a positive review. Foreword Magazine, Inc. is disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255.