Elements of Logic Programming in a Concatenative Functional Language
summary
A minimal concatenative functional language called Con-Cat implements a free-monoid syntax and exposes programs as semigroupoid objects so algebraic decomposition algorithms can run on real code. It runs on the JVM, archives core code on Software Heritage, and demonstrates stack combinators (I, dip), quoting, and no variables/no floats design. The implementation realizes unification with substitution-on-dictionary (recursive-descent unify, propagation applied twice) and handles nested-list unification, constraint propagation and finite-set unification, including occurs-check failure detection.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 3:15Theoretical foundations
- 7:32Design principles
- 11:28Core operations
- 15:09Conditionals and type checking
- 17:17Unification algorithm
- 21:09Logic programming integration
- 23:40Challenges and future work
- 24:46Sub-languages and next steps
- 25:28Conclusion and audience questions
related talks
32mGranite: Compositional Functional Logic Programming
21mFunctorial Syntax for All
47mLogic Programming à la Carte
43mAn Imperishable Wonderland of Infinite Fun
36mConcrete Functional Programming
41mConcatenative programming and stack-based languages
54mCategory Theory Through Functional Programming (part 3/3)
45mA categorical view of computational effects
