HN
Today

Combinators

This concise documentation page delves into the mathematical concept of combinators, illustrating their various forms within the TinyAPL programming language. It meticulously lists each combinator with its symbolic representation, APL expression, and often a whimsical 'bird name,' alongside illustrative diagrams. Hacker News users interested in functional programming's elegant, foundational primitives will find this a fascinating and clear technical resource.

10
Score
3
Comments
#3
Highest Rank
7h
on Front Page
First Seen
Mar 31, 1:00 PM
Last Seen
Mar 31, 7:00 PM
Rank Over Time
8348101217

The Lowdown

This TinyAPL documentation page offers a detailed exposition of combinators, defining them as functions or operators that exclusively operate on their arguments and operands without direct modification. The article systematically presents a variety of combinators, bridging theoretical concepts with their practical application in APL.

  • Core Definition: Combinators are defined as functions or operators that only refer to their arguments and operands, ensuring no side effects or modifications.
  • Structured Listing: Each combinator is presented with its traditional symbolic notation (e.g., I, K, W), its corresponding TinyAPL expression, and a descriptive 'bird name' (e.g., Identity, Kestrel, Warbler), often referencing Raymond Smullyan's work.
  • Visual Representation: Diagrams accompany each combinator to provide a clear visual understanding of its operation.
  • Range of Combinators: The document covers foundational combinators like Identity, Kestrel, Kite, Warbler, Cardinal, and Bluebird, as well as more complex ones like Queer, Psi, Starling, and Phoenix.
  • Custom Combinator: A unique 'Parrot' combinator is introduced, explicitly noted as an original creation.
  • Related Primitives: It also includes other APL primitives that exhibit combinator-like behavior, such as those for constants and valences.
  • Etymology of Names: Footnotes clarify the origins of the 'bird names,' attributing them to classic texts and other programming language documentation.

Overall, the page serves as an excellent, self-contained guide to combinatory logic as implemented in TinyAPL, showcasing the elegance and power of these fundamental functional programming constructs.