Review of Types and Programming Languages by Benjamin C. Pierce; The MIT Press, 2002
ways, arrange them at the table, which we can do in (i 1)! ways (the answer is not i! since the tables are round), then arrange the n i at the left table anyway you like, which is (n i)! ways. Hence the number of ways to seat n + 1 people at two identical round tables is n i=0 n! (i 1)!(n i)! = i!(n i)! n i=0 n! (i 1)! = i! n i=0 n n! 1 = n! = n!Hn . i i i=0 End of Proof Costello: Wow! Blows my mind! You should write a review of that book for SIGACT NEWS. Abbott: I just did. Costello: When? Abbott: Just now. Costello: Who should read this book? Abbott: Who s on rst. Costello: Never tell the same joke twice. Abbott: Oh. Right. Anyway, the book contains many identities similar to the ones given above. In all cases they prove combinatorial identities not by induction and not by algebraic manipulation, but by showing that two quantities solve the same problem. Even though it was written for a math audience the book will pro t anyone who has had a basic course in combinatorics, who is happy with proofs, and who wants to see some elegant proofs of unbelievable identities. Costello: Good, put that in the review. Abbott: I just did. Review of Types and Programming Languages Author: Benjamin C. Pierce The MIT Press, 2002, 623 pages Review written by Mats Kindahl3 Overview Type systems and type checking are playing an increasingly important role in the development of programming languages. Almost every programming language developed today are developed with type systems as an integral part of the language. The goals of this book are to cover all important core topics of and give useful examples of how to use and implement type systems for programming languages. The book is separated into several parts, each part with coverage of one important core topic. After the introduction of lambda-calculus and some basic formalism for describing languages, the book presents a simple type system for lambda-calculus. In the following parts, the type system...