# iterTriangularSeq > Create an iterator which generates a sequence of [triangular numbers][oeis-a000217].
The [triangular numbers][triangular-number] are the integer sequence
Triangular number sequence
starting at the 0th [triangular number][triangular-number]. [Triangular numbers][triangular-number] are given by the following explicit formulas
Triangular number formulas
where the last formula corresponds to a [binomial coefficient][@stdlib/math/base/special/binomcoef], representing the number of distinct pairs that can be selected from `n+1` items.
## Usage ```javascript var iterTriangularSeq = require( '@stdlib/math/iter/sequences/triangular' ); ``` #### iterTriangularSeq( \[options] ) Returns an iterator which generates a sequence of [triangular numbers][triangular-number]. ```javascript var it = iterTriangularSeq(); // returns var v = it.next().value; // returns 0 v = it.next().value; // returns 1 v = it.next().value; // returns 3 v = it.next().value; // returns 6 v = it.next().value; // returns 10 // ... ``` The returned iterator protocol-compliant object has the following properties: - **next**: function which returns an iterator protocol-compliant object containing the next iterated value (if one exists) assigned to a `value` property and a `done` property having a `boolean` value indicating whether the iterator is finished. - **return**: function which closes an iterator and returns a single (optional) argument in an iterator protocol-compliant object. The function supports the following `options`: - **iter**: number of iterations. Default: `134217727`. By default, the function returns a finite iterator to avoid exceeding the maximum safe double-precision floating-point integer. To adjust the number of iterations, set the `iter` option. ```javascript var opts = { 'iter': 2 }; var it = iterTriangularSeq( opts ); // returns var v = it.next().value; // returns 0 v = it.next().value; // returns 1 var bool = it.next().done; // returns true ```
## Notes - If an environment supports `Symbol.iterator`, the returned iterator is iterable.
## Examples ```javascript var iterTriangularSeq = require( '@stdlib/math/iter/sequences/triangular' ); // Create an iterator: var opts = { 'iter': 100 }; var it = iterTriangularSeq( opts ); // Perform manual iteration... var v; while ( true ) { v = it.next(); if ( v.done ) { break; } console.log( v.value ); } ```