Programming Language Pragmatics: Michael L. Scott
Programming Language Pragmatics: Michael L. Scott
Functional Languages
• Higher-order functions
– Take a function as argument, or return a function
as a result
– Great for building things
– Currying (after Haskell Curry, the same guy
Haskell is named after)
• For details see Lambda calculus later
• ML, Miranda, and Haskell have especially nice syntax
for curried functions
• Lambda calculus:
– A notation/model of computation based on
purely syntactic symbol manipulation, in which
everything is a function
– Developed by Alonzo Church in the '30's as a
model for computability
– Church was one of a crowd that also included
Chomsky, Turing, Kleene, and Rosser