logoalt Hacker News

jb1991today at 2:55 PM2 repliesview on HN

This site is actually named after one of the most popular and widely used Combinators in lisp.


Replies

roadside_picnictoday at 3:39 PM

> in lisp.

Technically you cannot implement a proper Y-combinator in Lisp (well, I'm sure in Common Lisp and Racket there is some way) because the classic Y-combinator relies on lazy, not strict, evaluation. Most of the "Y-combinators" people have implemented in Lisp/Scheme/JavaScript/etc are more accurately described as the "applicative order Y-combinator" (also Z-combinator)

Funnily enough, you also cannot* implement the Y-combinator in Haskell (probably the most popular language with lazy evaluation) because the type system will not be happy with you (the Y-combinator, by it's nature, is untyped).

cryptonectortoday at 3:40 PM

Specifically the Y combinator enables recursion in a language that otherwise does not support recursion but does support closures.