2013-06-20

Functional Programing: the Jargon “Lambda”

these days, with functional programing getting popular, and lots lots new languages, the lambda name is falling out of fashion, and i think that's a good thing.

for example, in JavaScript, its functions are lambdas (⁖ function xyz {…}), but no JavaScript literature calls it lambda. 〔☛ Functional Programing in JavaScript〕 Same situation in Ruby. Younger generation using these languages, never thought about lambda, yet they benefit from what these so-called “anonymous” function provides. The name lambda actually harms understanding.

in Mathematica, the lambda is called Pure Function, but is written simply as Function[…]. (it's called Pure Function to differentiate from functions defined using pattern matching) Mathematica has been that way since version 1 in 1988.

the most important thing about lambda, isn't any advanced use, such as “closure”, or things one hear from the Haskell world. It's simply that the function is a expression, namely it returns a value that represents the function. (and therefore, it can be assigned to a var, or passed as a parameter to other function, or returned as a value from a function) (here, in lisp world it's sometimes known as “Function as First Class Citizens”. (again, a term that harms education and progress and propagation of functional languages))