WOLFRAM

The Wolfram Language:
Fast Introduction for Programmers

Show additional notes for:
All sections 
Get Started

Applying Functions Video Version

It's very common to want to "map" a function over multiple expressions:

In[1]:=
Out[1]=

Notes for Python programmers:

Map in the Wolfram Language is like map in Python, except that it can operate on arbitrary expression trees of any depth.


/@ ("slash at") is a short notation for Map:

In[2]:=
Out[2]=

Notes for Java programmers:

Map in the Wolfram Language works similarly to the Stream.map method in Java, except that Map can be applied to any kind of expression.


This uses a pure function:

In[3]:=
Out[3]=

Apply applies a function to multiple arguments:

In[1]:=
Out[1]=

Notes for Python programmers:

Apply in the Wolfram Language is similar to the unpacking operator * in Python.


Expressions have "levels"—corresponding to the number of indices needed to extract a part. Functions like Map can operate at specific levels.

Notes for Java programmers:

"Levels" are another name for dimensions of an array, but generalized for all symbolic expressions. Multi-dimensional operations like this are not built into Java and would normally require loops.

Notes for Python programmers:

"Levels" are like dimensions of an array, but generalized for all symbolic expressions. Python's array functions are typically set up only for one-dimensional arrays.

Map defaults to operate at level 1:

In[1]:=
Out[1]=

This operates only at level 2:

In[2]:=
Out[2]=

@@ is equivalent to Apply, operating by default at level 0:

In[1]:=
Out[1]=

@@@ means "apply at level 1":

In[2]:=
Out[2]=

@ means ordinary function application:

In[3]:=
Out[3]=

Which expression evaluates to g[{a, b, c}]?


Which one of these expressions evaluates to {{f[a], f[b]}, {f[c], f[d]}}?


Which of the following evaluates to {{{f[a], f[b]}}, {{f[c], f[d]}}}?

© 2025 Wolfram. All rights reserved.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy