The Nimblex formula language is a descendent of the Excel formula language, which is in turn derived from Lotus123. This language is a purely functional language, designed for mathematical operations. Nimblex adds basic single-assignment variables, as well as various array processing functions that were not native to its predecessors. These features allow much more complex calculations to be made, while keeping much of the simplicity of a formula language.

List processing is a term used to describe a number of techniques used for operating on a sequence of values. In Nimblex, this typically means an Array. In our world: ARRAY = LIST, LIST = ARRAY.

For more general descriptions of lists: https://en.wikipedia.org/wiki/List_%28abstract_data_type%29.

There is a family of functions in the Nimblex formula language that: Take a list and produce another list, or take a list and produce a value. These functions are very useful for eForm design in Nimblex. These functions are generally of format: **ARRAY_***, and appear in the ARRAY category of functions in the software formula function reference

# Lists

An array in Nimblex is a sequence of values. It is helpful to think of an array as looking like this:

This (above) image represents a four element array, with the sequence of numbers (1, 2, 3, 4).

An array may contain any value within each element, including numbers, strings, booleans or more arrays.

This is an array with four elements. Each element contains a 4 element array. Each of these inner arrays contains the sequence of (2,3,4,5).

# Lambdas

Many of these functions use a language construct called a **lambda**. This is a mechanism for specifying a partial formula that can be re-used with different **parameters**.

Syntax:

This lambda can be used with any value substituted for $i or $item. The formula will then be evaluated and likely produce a different result for each input.

## Example

In this case, the result will be the second input value with the integer 1 added to it.

The result is 8.