By Josh Moody — Published: Oct 19, 2025 Dana. The interviewer. Friendly, efficient. She leans forward. “So,” she says, “walk me through FizzBuzz.” You could do this in your sleep. “Is JavaScript okay?” She nods. You open your laptop and begin. let S = (x) => (y) => (z) => x(z)(y(z)); let K = (x) => (y) => x; “That should do it,” you say to yourself. “Just need to combine these a few times.” Dana raises an eyebrow. You continue. let I = S(K)(K); // x => x let B = S(K(S))(K); // x => y => z => x(y(z)) let C = S(B(B)(S))(K(K)); // x => y => z => x(z)(y) let W = S(S)(K(I)); // x => y => x(y)(y) let T = C(I); // x => y => y(x) Bluebird, cardinal, warbler, thrush. Avian friends you know well. Dana looks puzzled. “Are we still doing FizzBuzz?” “Getting there.” let V = B(C)(T); // x => y => z => z(x)(y) let R = B(B)(T); // x => y => z => y(z)(x) let B1 = B(B)(B); // x => y => z => w => x(y)(z)(w) let E = B(B1); // x => y => z => w => v => x(y)(z(w(v))) let C_STAR = B(C); // x => y => z => w => x(y)(w)(z) let C_STAR_STAR = B(C_STAR); // x => y => z => w => v => x(y)(z)(v)(w) Dana breaks away from the screen. “Typically I see a for loop by now. Are you sure we’re talking about the same problem?” “Trust me.” let TRUE = K; let FALSE = K(I); let NOT = V(FALSE)(TRUE); She stands. “Okay,” she says finally. “Let me stop you there.” “Something wrong?” “You’re not the first candidate to show up here and reinvent programming from first principles using lambda calculus.” You stare, blankly. “Lambda calculus?” “Look,” she says. “We’ve all read Programming with Nothing. We’ve all seen What is PLUS times PLUS. You’re not breaking any new ground here.” You shake your head vigorously. “I would never be caught dead using Lambda calculus. It’s a bloated language.” Dana’s turn to stare. You move on to numbers. let ZERO = I; let IS_ZERO = T(TRUE); let SUCC = V(FALSE); // successor let PRED = T(FALSE); // predecessor let DECREMENT = S(W(IS_ZERO))(PRED); // clamped predecessor let ONE = SUCC(ZERO...
First seen: 2025-10-23 07:29
Last seen: 2025-10-23 21:33