 In lambda calculus, a library would take the form of a collection of previously defined functions, which as lambda-terms are merely particular constants.The pure lambda calculus does not have a concept of named constants since all atomic lambda-terms are variables, but one can emulate having named constants by setting aside a variable as the name of the constant, using abstraction to bind that variable in the main body, and apply that abstraction to the intended definition.Thus to use "f" to mean "M" (some explicit lambda-term) in "N" (another lambda-term, the "main program"), one can say
Authors often introduce syntactic sugar, such as let, to permit writing the above in the more intuitive order
By chaining such definitions, one can write a lambda calculus "program" as zero or more function definitions, followed by one lambda-term using those functions that constitutes the main body of the program.