The Ackermann function
On unary numbers, as lists
test/unary-ackermann: pass
(define (test/unary-ackermann _)
(define A
(λ (α β)
(match/first
(list α β)
((() ,ns) (cons '● ns))
(((,m unquote ms) ()) (A ms '(●)))
(((,m unquote ms) (,n unquote ns)) (A ms (A (cons m ms) ns))))))
(⊦= '(● ● ● ● ● ● ● ● ●) (A '(a a) '(a a a))))
((eta 0.0) (memory #(6291456 1829816 1048576)) (stdout "") (stderr ""))