Skip to content

Lists

Lists can be entered in Symja with curly braces { and }:

>> mylist = {a, b, c, d}
{a,b,c,d}

There are various functions for constructing lists:

>> Range(5)
{1,2,3,4,5}
>> Array(f, 4)
{f(1),f(2),f(3),f(4)}
>> ConstantArray(x, 4)
{x,x,x,x}
>> Table(n ^ 2, {n, 2, 5})
{4,9,16,25}

The number of elements of a list can be determined with Length:

>> Length(mylist)
4

Elements can be extracted using double square braces:

>> mylist[[3]]
c

Negative indices count from the end:

>> mylist[[-3]]
b

Lists can be nested:

>> mymatrix = {{1, 2}, {3, 4}, {5, 6}};

There are various ways of extracting elements from a list:

>> mymatrix[[2, 1]]
3
>> mymatrix[[;;, 2]]
{2,4,6}
>> Take(mylist, 3)
{a,b,c}
>> Take(mylist, -2)
{c,d}
>> Drop(mylist, 2)
{c,d}
>> First(mymatrix)
{1,2}
>> Last(mylist)
d
>> Most(mylist)
{a,b,c}
>> Rest(mylist)
{b,c,d}

Lists can be used to assign values to multiple variables at once:

>> {a, b} = {1, 2};
>> a
1
>> b
2

Many operations, like addition and multiplication, “thread” over lists, i.e. lists are combined element-wise:

>> {1, 2, 3} + {4, 5, 6}
{5,7,9}
>> {1, 2, 3} * {4, 5, 6}
{4,10,18}

It is an error to combine lists with unequal lengths:

>> {1, 2} + {4, 5, 6}
Lists of unequal length cannot be combined: {1,2}+{4,5,6}
{1,2}+{4,5,6}