combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. it was introduced by moses schönfinkel and haskell curry, and has more recently been used in computer science as a theoretical model of computation and also as a basis for the design of functional programming languages. it is based on combinators which were introduced by schönfinkel in 1920 with the idea of providing an analogous way to build up functions - and to remove any mention of variables - particularly in predicate logic. a combinator is a higher-order function that uses only function application and earlier defined combinators to define a result from its arguments.