Ideas pile for Prowl (tutorial).
Prowl is a purely-functional, statically typed, modular, concatenative relational programming language.
Main inspirations include:
- Stack Languages (Kitten, Factor, Joy)
- Functional Languages (OCaml, Haskell)
- Relational Languages (miniKanren)
- Kleene Algebras (Vinegar, Oniguruma Regex)
Our look is highly original, though loosely inspired by SML, Reason, Factor, and Regex.
rel n fac --
(n == 0) 1
: n * (n - 1) fac
Alternatively:
rel fac -- (
as 0 -> 1;
as n if n > 0 -> n * (n - 1) fac
)?!
Check out learn-fast for more. An interpreter exists for a much older, much less cool version of the language.
- Stack Language Introduction in Kitten
- Why Concatenative Programming Matters
- Expressive Static Typing for Stack Languages
- Thun Essays
- Relational Programming - "This Is It"
- Relational Programming in miniKanren
- Relation Algebra
- Category of Relations
- Concatenative Error Handling in Vinegar
- Recursion Schemes
- Generalizing Monads to Arrows
- Understanding Arrows
- MixML Module System
- Modular Implicits
- Reason Syntax