Functional Programming

Functional programming is a highly developed and deeply integrated core feature of the Wolfram Language, made dramatically richer and more convenient through the symbolic nature of the language. Treating expressions like f[x] as both symbolic data and the application of a function f provides a uniquely powerful way to integrate structure and functionand an efficient, elegant representation of many common computations.

Function (&) specify a pure function (e.g. (#+1)&)

#, ##, #name slots for variables in a pure function

Applying Functions to Lists »

Map (/@) map across a list: f/@{x,y,z}{f[x],f[y],f[z]}

Apply (@@, @@@) apply to a list: f@@{x,y,z}f[x,y,z]

MapIndexed map with index information: {f[x,{1}],f[y,{2}],f[z,{3}]}

MapThread  ▪  MapAt  ▪  MapAll  ▪  Scan  ▪  ...

Iteratively Applying Functions »

Nest, NestList, NestGraph nest a function: f[f[f[x]]] etc.

Fold, FoldList fold in a list of values: f[f[f[x,1],2],3] etc.

SequenceFold  ▪  SequenceFoldList  ▪  FoldPair  ▪  FoldPairList

FixedPoint, FixedPointList repeatedly nest until a fixed point

NestWhile  ▪  NestWhileList  ▪  TakeWhile  ▪  LengthWhile  ▪  ...

List-Oriented Functions »

Select select from a list according to a function

Array create an array from a function

SortBy  ▪  MaximalBy  ▪  SplitBy  ▪  GatherBy  ▪  ...

Association-Oriented Functions

AssociationMap create an association from a function

KeySortBy  ▪  CountsBy  ▪  GroupBy  ▪  ...

Functional Composition

Identity  ▪  Composition  ▪  Operate  ▪  Through  ▪  Distribute  ▪  ...

"Curried" Operator Forms »

Curry  ▪  Select  ▪  Cases  ▪  Append  ▪  Map  ▪  Position  ▪  ...

Related Tutorials