Are lambda calculus and combinatory logic the same? I am currently reading "Lambda-Calculus and Combinators" by Hindley and Seldin.  I'm not an expert, but have always taken an interest in lambda calculus because of involvement with functional programming (starting with Lisp and SICP, and now with R and Haskell).  

In "Binary Lambda Calculus and Combinatory Logic", John Tromp states:


  CL may be viewed as a subset of lambda calculus...the theories are largely the same,
  becoming equivalent in the presence of the rule of extensionality.


Under what conditions would one use combinatory logic instead of lambda calculus?

Any references would be appreciated.
What distinguishes combinatory logic is that it is variable free.  This is sometimes useful in metamathematics and philosophical logic, where the status of variables is tricky.

It may also be useful in implementations, since managing variables can be a headache.  Cf., e.g., Hughes, 1982, Super-combinators: A new implementation method for applicative languages