General information
Mathematica's functional programming features allow users to treat functions as expressions in the same way that data are expressions. This functionality is usually more efficient than Do
and For
loops that are more familiar to users of procedural programming languages like C or Fortran. By using dedicated built-in Mathematica functions and pure functions, one can write code where the output of a function is set to be the direct input of a next function, without ever introducing variables at all.
An important part of this functionality is the use of pure functions, known in some other languages as "anonymous functions". These are usually distinguishable through their use of Function
(&
) and the (optional) accompanying use of Slot
(#
) and SlotSequence
(##
), standing for arguments.
##Useful links
- Mathematica main documentation page on functional programming
- Tutorial by Atif Memon at the University of Maryland
- Say no to loops! (Mathematica notebook): older tutorial available at Verbeia.com
- Excerpt from Sal Mangano's Mathematica Cookbook