Combinators - TinyAPL
A combinator is a function or operator that only refers to its arguments and operands without modifying them in any way.
Symbol APL expression Bird(1) TinyAPL Diagram
I
\mathrm I
I y Identity ⊣/⊢
K
\mathrm K
K x Kestrel ⊣
κ
\kappa
κ y Kite ⊢
W
\mathrm W
W y F y Warbler ⍨
C
\mathrm C
C y F x Cardinal ⍨
B
\mathrm B
B F (G y) Bluebird ∘/⍤/⍥
Q
\mathrm Q
Q G (F y) Queer ⍛
B
1
{\mathrm B}_1
B1 F (x G y) Blackbird ⍤
Ψ
\Psi
Ψ (G x) F (G y) Psi ⍥
S
\mathrm S
S y F (G y) Starling ⟜/⇽
Σ
\Sigma
Σ (F y) G y Violet Starling ⊸/⇾
D
\mathrm D
D x F (G y) Dove ∘/⟜
Δ
\Delta
Δ (F x) G y Zebra Dove ⍛/⊸
Φ
\Phi
Φ (F y) G (H y) Phoenix «»
Φ
1
\Phi_1
Φ1 (x F y) G (x H y) Pheasant «»
D
2
{\mathrm D}_2
D2 (F x) G (H y) Dovekie ⊸ + ⟜
P
\mathrm P
P (y G x) F (x G y) Parrot(2) ⸚
N
\mathrm N
N x F (x G y) Eastern Nicator ⇽
ν
\mathrm \nu
ν (x F y) G y Western Nicator ⇾
Additionally, some other primitives have combinator-like behavior:
APL expression TinyAPL Diagram n ⍨ n ⍨ F y ⁖ x G y ⁖
Footnotes
Some combinators have bird names, originating from To Mock a Mockingbird by Raymond Smullyan. Some of the bird names are taken from the Uiua combinator page.
I made this one up.
I'm, ehm, yes, unsure.
This might be slop.
It's a song about Moses Schönfinkel and his combinatory logic.
And, I kinda like it.
https://www.youtube.com/watch?v=9tiUCpzMSnY
#logic #combinators #schönfinkel
YouTube🤔 So, the magnificent
#Wolfram has decreed that we'll all drop everything to ponder whether a single letter,
#S, has the mystical power to compute the
#universe. 🌌 Who knew
#combinators needed a centennial
#celebration, complete with a $20,000 participation trophy? 🎉 All hail the new age of combining letters for cash! 💸
https://www.combinatorprize.org/ #cash #prize #HackerNews #ngated"I claimed in the end of the video that this was the first example of animated beta-reductions of visual lambda expressions. Paul Brauner has some videos here: • Lambda Diagrams [1] , although they do not explicitly animate the mechanics of one step of beta-reduction! I probably should have chosen my words more carefully."
https://www.youtube.com/watch?v=RcVA8Nj6HEo[1]
https://www.youtube.com/playlist?list=PLi8_XqluS5xc7GL-bgVrxpA2Uww6nK0gV#lambdacalculus #combinators #animation #representation #church #tromp #turing
YouTubeOh joy, yet another
#C++17
#parser combinator library! 🎉 Because what the world really needed was more creative ways to torture ourselves with syntactic nightmares and verbose error messages. 🚀 GitHub's endless quest to make
#programming as enjoyable as a root canal continues unabated. 🙄
https://github.com/foonathan/lexy #combinators #humor #GitHub #developer #woes #HackerNews #ngated
GitHub - foonathan/lexy: C++ parsing DSL
C++ parsing DSL. Contribute to foonathan/lexy development by creating an account on GitHub.
GitHub
Stop writing CLI validation. Parse it right the first time.
This post introduces Optique, a new library created to address the pervasive problem of repetitive and often messy validation code in CLI tools. The author was motivated by the observation that nearly every CLI tool reinvents the wheel with similar validation patterns for dependent options, mutually exclusive options, and environment-specific requirements. Optique leverages parser combinators and TypeScript's type inference to ensure that CLI arguments are parsed directly into valid configurations, eliminating the need for manual validation. By describing the desired CLI configuration with Optique, TypeScript automatically infers the types and constraints, catching potential bugs at compile time. The author shares their experience of deleting large chunks of validation code and simplifying refactoring tasks. Optique aims to provide a more robust and maintainable approach to CLI argument parsing, potentially saving developers from writing the same validation logic repeatedly.
Hackers' PubOptique 0.4.0: Better help, rich docs, and Temporal support
https://hackers.pub/@hongminhee/2025/optique-040

Optique 0.4.0: Better help, rich docs, and Temporal support
Optique 0.4.0 introduces enhancements to streamline CLI development in TypeScript. This release focuses on improving help text organization through labeled merge groups and a new `group()` combinator, making complex CLIs more user-friendly by organizing options under clear sections. Comprehensive documentation support is added via the `run()` function, allowing brief descriptions, detailed explanations, and footers without altering parser definitions. The update also includes Temporal API support with the `@optique/temporal` package, enabling type-safe parsing for dates, times, and time zones. Improved type inference for `merge()` and `tuple()` combinators enhances type safety, alongside minor breaking changes. These updates aim to make CLI construction more intuitive and maintainable, offering developers greater control over user experience and code structure.
Hackers' Publambda is not a four letter word - Embedding MicroHs

GitHub - fosskers/parcom: Simple parser combinators for Common Lisp.
Simple parser combinators for Common Lisp. Contribute to fosskers/parcom development by creating an account on GitHub.
GitHubIn about an hour, Adám from Dyalog is appearing on today's Tacit Talk, a podcast about programming languages, combinators, algorithms, and more. Watch live at 14:00 UTC at https://www.youtube.com/watch?v=6LrQithKj8w
#Dyalog #APL #Programming #Combinators #Algorithms #FunctionalProgramming #Podcast #LiveStream #TechTalk #Coding #TechPodcast

Tacit Talk Episode 4: Dyalog APL with Adám Brudzewsky
YouTube