I'm a bit confused about what really is being interpreted here, because my reading of the specification indicates that the entire image is read as a single expression in the lambda calculus but the graphic interpreter <i>looks</i> like a procedural execution at the first glance. Is it just a visualization of beta-reduction in progress?<p>EDIT: I think I got it and I think calling this as an "encoding" is a misnomer. The program starts with a single term `turnstyle(x, y, dir)` which gets lazily evaluated to the actual term. So not only the evaluation might be lazy, but the parsing is also lazy and this is a key point of this esolang which should be highlighted more in my opinion.
This seems cool, but I’m having difficulty understanding the specification. It would be nice if there were some examples of e.g. 2+3 , (lambda f. lambda x. (f (f x)))(lambda y. (y+2)) 3 ?
Worth maybe calling out that there is a few academic language implementations using this name (turnstile, turnstile+) <a href="https://docs.racket-lang.org/turnstile" rel="nofollow">https://docs.racket-lang.org/turnstile</a>. It's not a standalone language but worth pointing out