Creates a list by evaluating a formula over a range of values.

seq(*formula*,*variable*,*start*,*end*[,*step-size*]

**Menu Location**

- Press 2nd MATH to enter the MATH popup menu.
- Press 3 to enter the List submenu.
- Press 1 to select seq(.

This command works on all calculators.

2 bytes

The seq() command creates a list of terms of a sequence: seq(*formula*,*variable*,*start*,*end*) evaluates *formula* for every value of *variable* from *start* to *end*. Optionally, a fifth argument, *step-size*, is included: this increases the value of *variable* by *step-size* for each element, instead of 1.

seq() is similar to a For..EndFor loop, but instead of repeating a block of commands every time, it only evaluates a formula.

```
:seq(f(x),x,1,5)
{f(1) f(2) f(3) f(4) f(5)}
:seq(x,x,3,9,2)
{3 5 7 9}
:seq(x^2,x,5,1,-1)
{25 16 9 4 1}
```

The variable used in seq(), x in the examples, is not actually modified.

# Advanced Uses

Because a matrix is just a list of lists, you can use seq() to create matrices as well as lists. The simplest way to do it is to make the formula a list:

```
:seq({x,2x,3x},x,1,4)
[1 2 3 ]
[2 4 6 ]
[3 6 9 ]
[4 8 12]
```

You can also create a matrix by nesting a seq() command inside another seq() command:

```
:seq(seq(row+col,col,1,4),row,1,3)
[2 3 4 5]
[3 4 5 6]
[4 5 6 7]
```

# Optimization

If all you need to do in a loop is create a list, it's probably better to use seq() than For..EndFor.

You can often use newList() instead of seq() to create an expression that gets evaluated much faster (see List Optimization for details).

# Error Conditions

For the non-generic errors that might occur when using this command (that is, syntax-type errors shouldn't be included). In a format similar to the following:

**260 - Domain error** happens when the *step-size* argument is 0.

**510 - Invalid list or matrix** happens when the formula of seq() is a matrix, or a list that varies in size.