No Let, No Rec, No Problem: A Gentler Introduction to the Y and Z Combinators
56 points by sayyadirfanali
by Trung0246
0 subcomment
Here's a funny Z combinator in typescript in pure SKI form for lambda calculus purist:
const K = <A, B>(a: A) => (_b: B) => a;
const S = <A, B, C>(a: (x: C) => (y: B) => A) => (b: (x: C) => B) => (c: C) => a(c)(b(c));
const Z = S(K(S(S(K)(K))(S(K)(K))))(S(S(K(S))(K))(K(S(K(S(S)(S(K))))(S(S(K(S))(K))(K)))));
I feel like introducing lambda calculus (using JS syntax) would be less cumbersome and convoluted than referring to "the challenge" without really justifying it and deferring to respect the rules for so long. But maybe some people entirely unfamiliar with these concepts find this approach easier?
by satvikpendem
0 subcomment
Good to see this in the second chance pool. Unfortunately I don't think most commenters know what the article is about and thus we may end up with this submission leaving the front page quickly, a shame though as the YC namesake is from similar articles as these, a company that produces other companies, as Paul Graham had said.