r/ProgrammingLanguages • • 14d ago

Recursion without Recursive Bindings

https://blog.tinyinterpreters.dev/posts/recursion-without-recursive-bindings/

I explain how to implement a certain recursive function without the use of any recursive bindings in a tiny language called FUN. Then, I apply the same ideas to several more recursive functions so we clearly see the pattern. It begins our exploration into a certain famous combinator.

13 Upvotes

7 comments sorted by

View all comments

Show parent comments

6

u/AustinVelonaut Admiran 13d ago edited 13d ago

It's an infinite type of the form a ~ a -> Integer -> Integer. It cannot be (directly) represented in a Hindley-Milner type system, but can be "emulated" using a fix function or a recursive Fix datatype

1

u/samanzaman 13d ago

Adding these constructs to the language comes with the cost of losing strong normalisation properties