Raymond Smullyan's To Mock a Mockingbird explores various problems in combinatory logic through the extended metaphor of a forest full of birds. Each bird represents a combinator function: a simple, generic, often higher-order function that operates on no variables other than its arguments. (The Mockingbird, for example, takes one argument and returns the result of invoking it with itself: const Mockingbird = x => x(x)
).
This repo captures notes and solutions from working through Smullyan's problems. (I found many of these too difficult to solve without checking the answers, which can be quite dense—more than anything, these are notes-to-self on the solutions!)
- 1: The Significance of the Mockingbird
- 2: Egocentric?
- 3: Story of the Agreeable Bird
- 4: A Question on Agreeable Birds
- 5: An Exercise in Composition
- 6: Compatible Birds
- 7: Happy Birds
- 8: Normal Birds
- 9: Hopelessly Egocentric
- 10: Fixation
- 11: A Fact about Kestrels
- 12: Another Fact about Kestrels
- 13: A Simple Exercise
- 14: Another Exercise
- 15: Hopeless Egocentricity Is Contagious!
- 16: Another Fact about Kestrels
- 17: A Fact about Fixation
- 18: Another Fact about Kestrels
- 19: A Riddle
- 20
- 21
- 22
- 23
- 24
- 25
- 26: Another Riddle
- 27
- 28
- 29