
Show HN: "Kestrels, Quirky Birds, and Hopeless Egocentricity," free online - raganwald
http://combinators.info/
======
bediger4000
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....](http://web.mac.com/janwillemklop/Site/Bibliography_files/10.RCCL.PDF))
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.

~~~
raganwald
I've included these, thank you!

------
evincarofautumn
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.

------
raganwald
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...

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

