Hacker News new | comments | show | ask | jobs | submit login
Show HN: "Kestrels, Quirky Birds, and Hopeless Egocentricity," free online (combinators.info)
59 points by raganwald 1607 days ago | hide | past | web | 5 comments | favorite

John Tromp's paper "Binary Lambda Calculus and Combinatory Logic" (http://homepages.cwi.nl/~tromp/cl/LC.pdf) is a genuine classic.

Henk Barendregdt's "Juggling With Combinators" (http://repository.ubn.ru.nl/handle/2066/17290) shows you a lot of interesting things you can do with Combinatory Logic.

Barendregdt's "Reflection and its use" (ftp://ftp.cs.kun.nl/pub/CompMath.Found/biologen.pdf) has a small, but interesting section on Combinatory Logic. The exercizes include finding a CL term that Barendregdt calls an "Ogre", same as Smullyan's Hopelessly Egocentric bird.

Jan Willem Klop's "Cycles in Combinatory Logic" (http://web.mac.com/janwillemklop/Site/Bibliography_files/10....) does a lot of neat things in a proof that is very hard to understand. It has a section at the end about CL bases other than SKI that's very interesting.

I've included these, thank you!

For the Haskellers in the room, the “K” combinator is “const”, and the “S” combinator is “ap” in the Reader monad. Combinators encode common patterns; for example, you can use the fact that Sxyz = xz(yz) to write functions that split some input in two, do a computation on both parts, then join the results:

    capitalize = (:) . toUpper . head <*> map toLower . tail
Of course, combinators rapidly become unwieldy for anything nontrivial, since they are the essence of point-free style. And most SK calculus terms aren’t typeable in Haskell anyway.

If you have any suggestions for links to blog posts or other resources related to combinatory logic, please post them, Id like to expand the list of related links. Thanks in advance...

Buy this! It will expand your mind and your toolset. Excellent writing, love the github site.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact