Skip to content

Tabulate ​

The list of ff applied to each index from 1 to nn (or a rectangular grid of them).

Tabulate(f, n)[f(1),f(2),…,f(n)][f(1), f(2), \ldots, f(n)].
Tabulate(f, n, m, …)the nested array of ff applied to every index tuple in the n×m×…n \times m \times \ldots grid, each 1-based.
Typed signatures
TypePackageApplies
(generator: function, integer, integer?) -> listcompute-enginealways

Domain: Collections

Examples

Basic #
live ↗
InTabulate(_1⁡↦_1⁡2,5)\mathrm{Tabulate}(\operatorname{\_1}↦\operatorname{\_1}^2, 5)Out[1,4,9,16,25]\bigl\lbrack1, 4, 9, 16, 25\bigr\rbrack

A symbolic function shows the indices

live ↗
InTabulate(f,3)\mathrm{Tabulate}(f, 3)Out[f(1),f(2),f(3)]\bigl\lbrack f(1), f(2), f(3)\bigr\rbrack
Scope #

The multi-dimensional form: a rectangular grid, indexed from 1

live ↗
InTabulate((_1⁡,_2⁡)↦_1⁡_2⁡,2,2)\mathrm{Tabulate}((\operatorname{\_1}, \operatorname{\_2})↦\operatorname{\_1}\operatorname{\_2}, 2, 2)Out[[1,2],[2,4]]\bigl\lbrack\bigl\lbrack1, 2\bigr\rbrack, \bigl\lbrack2, 4\bigr\rbrack\bigr\rbrack

A 2×3 grid

live ↗
InTabulate(f,2,3)\mathrm{Tabulate}(f, 2, 3)Out[[f(1,1),f(1,2),f(1,3)],[f(2,1),f(2,2),f(2,3)]]\bigl\lbrack\bigl\lbrack f(1, 1), f(1, 2), f(1, 3)\bigr\rbrack, \bigl\lbrack f(2, 1), f(2, 2), f(2, 3)\bigr\rbrack\bigr\rbrack
live ↗
InTabulate(Add,2,2)\mathrm{Tabulate}(\mathrm{Add}, 2, 2)Out[[2,3],[3,4]]\bigl\lbrack\bigl\lbrack2, 3\bigr\rbrack, \bigl\lbrack3, 4\bigr\rbrack\bigr\rbrack

Three dimensions give a 2×2×2 array

live ↗
InTabulate(f,2,2,2)\mathrm{Tabulate}(f, 2, 2, 2)Out[[[f(1,1,1),f(1,1,2)],[f(1,2,1),f(1,2,2)]],[[f(2,1,1),f(2,1,2)],[f(2,2,1),f(2,2,2)]]]\bigl\lbrack\bigl\lbrack\bigl\lbrack f(1, 1, 1), f(1, 1, 2)\bigr\rbrack, \bigl\lbrack f(1, 2, 1), f(1, 2, 2)\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack f(2, 1, 1), f(2, 1, 2)\bigr\rbrack, \bigl\lbrack f(2, 2, 1), f(2, 2, 2)\bigr\rbrack\bigr\rbrack\bigr\rbrack

Length 0 gives the empty list

live ↗
InTabulate(f,0)\mathrm{Tabulate}(f, 0)Out[]\bigl\lbrack\bigr\rbrack
Applications #

The 3×3 Hilbert matrix, 1/(i+j−1)1/(i+j-1)

live ↗
InTabulate((_1⁡,_2⁡)↦1(_1⁡+_2⁡)−1,3,3)\mathrm{Tabulate}((\operatorname{\_1}, \operatorname{\_2})↦\frac{1}{(\operatorname{\_1}+\operatorname{\_2})-1}, 3, 3)Out[[1,12,13],[12,13,14],[13,14,15]]\bigl\lbrack\bigl\lbrack1, \frac{1}{2}, \frac{1}{3}\bigr\rbrack, \bigl\lbrack\frac{1}{2}, \frac{1}{3}, \frac{1}{4}\bigr\rbrack, \bigl\lbrack\frac{1}{3}, \frac{1}{4}, \frac{1}{5}\bigr\rbrack\bigr\rbrack

The 3×3 identity matrix

live ↗
InTabulate((_1⁡,_2⁡)↦if _1⁡=_2⁡ then 1 else 0,3,3)\mathrm{Tabulate}((\operatorname{\_1}, \operatorname{\_2})↦\text{if }\operatorname{\_1}=\operatorname{\_2}\text{ then }1\text{ else }0, 3, 3)Out[[1,0,0],[0,1,0],[0,0,1]]\bigl\lbrack\bigl\lbrack1, 0, 0\bigr\rbrack, \bigl\lbrack0, 1, 0\bigr\rbrack, \bigl\lbrack0, 0, 1\bigr\rbrack\bigr\rbrack

Pascal's triangle as a lower-triangular matrix

live ↗
InTabulate(Binomial,3,3)\mathrm{Tabulate}(\mathrm{Binomial}, 3, 3)Out[[1,0,0],[2,1,0],[3,3,1]]\bigl\lbrack\bigl\lbrack1, 0, 0\bigr\rbrack, \bigl\lbrack2, 1, 0\bigr\rbrack, \bigl\lbrack3, 3, 1\bigr\rbrack\bigr\rbrack
About
Examples10
Checked againstWolfram Language 10 agree