# Expressions **Experimental: this API is in early stage and could change any time** Expressions is an experimental feature which allows to construct lazily or immediately calculated parametric mathematical expressions. The potential use-cases for it (so far) are following: * Lazy evaluation (in general simple lambda is better, but there are some border cases) * Automatic differentiation in single-dimension and in multiple dimensions * Generation of mathematical syntax trees with subsequent code generation for other languages * Maybe symbolic computations (needs additional research) The workhorse of this API is `Expression` interface which exposes single `operator fun invoke(arguments: Map): T` method. `ExpressionContext` is used to generate expressions and introduce variables. Currently there are two implementations: * Generic `ExpressionField` in `kmath-core` which allows construction of custom lazy expressions * Auto-differentiation expression in `kmath-commons` module allows to use full power of `DerivativeStructure` from commons-math. **TODO: add example**