A system for reducing the operational notation of logic, mathematics or a functional language to a sequence of modifications to the input data structure. First introduced in the 1920's by Schoenfinkel. Re-introduced independently by Haskell Curry in the late 1920's (who quickly learned of Schoenfinkel's work after he had the idea). Curry is really responsible for most of the development, at least up until work with Feys in 1958. See combinator.