﻿ ↦ – Algosim documentation
Algosim documentation: ↦

# ↦ (maps to)

Creates a function.

## Syntax

• `x1[, x2[, ...]] ↦ expr`

• `x1`, `x2`, ... are symbols

• `expr` is an expression optionally containing any of the symbols `x1`, `x2`, ...

## Description

The `↦` operator creates a function. Its left operand is a comma-separated list of function arguments; all these are symbols that must be valid variable names. The right-hand side is an expression that may contain zero or more of these symbols. These symbols take precedence over any other symbol already defined with the same name.

If the left-hand side contains multiple symbols, it must be surrounded by parentheses.

The `↦` operator is implemented by the `CreateFunction` function.

## Examples

`f ≔ n ↦ n^2 + 1`
`custom function`
`f(21)`
`442`
`SequenceVector(10) @ f`
`(2, 5, 10, 17, 26, 37, 50, 65, 82, 101)`
`SequenceVector(10) @ (n ↦ n^n)`
`(1, 4, 27, 256, 3125, 46656, 823543, 16777216, 387420489, 10000000000)`
`a ≔ (m, n) ↦ m^2 + 3⋅m⋅n − 2⋅n`
`custom function`
`a(3, 2)`
`23`

A function may construct and return a function:

`adder ≔ n ↦ (x ↦ x+n)`
`custom function`
`AddFive ≔ adder(5)`
`custom function`
`AddFive(394)`
`399`

A custom plotter:

```p ≔ f ↦ (
grph ≔ plot(y = f(x));
grph,
"point size": 4,
"fill color": "steelblue",
"line width": 0,
"window width": 400,
"window height": 300
)
);
p(sin)
```

`p(cos)`