docs-v2/content/flux/v0.x/spec/system-built-ins.md

51 lines
1.8 KiB
Markdown

---
title: System built-ins
description: >
When a built-in value is not expressible in Flux, its value may be defined by the hosting environment.
All such values must have a corresponding builtin statement to declare the existence and type of the built-in value.
aliases:
- /influxdb/v2.0/reference/flux/language/built-ins/system-built-ins/
- /influxdb/v2.0/reference/flux/language/system-built-ins/
- /influxdb/cloud/reference/flux/language/system-built-ins/
menu:
flux_0_x_ref:
name: System built-ins
parent: Flux specification
weight: 114
---
Flux contains many preassigned values. These preassigned values are defined in the source files for the various built-in packages.
When a built-in value is not expressible in Flux, its value may be defined by the hosting environment.
All such values must have a corresponding builtin statement to declare the existence and type of the built-in value.
```js
BuiltinStatement = "builtin" identifer ":" TypeExpression .
TypeExpression = MonoType ["where" Constraints] .
MonoType = Tvar | Basic | Array | Record | Function .
Tvar = "A" "Z" .
Basic = "int" | "uint" | "float" | "string" | "bool" | "time" | "duration" | "bytes" | "regexp" .
Array = "[" MonoType "]" .
Record = ( "{" [Properties] "}" ) | ( "{" Tvar "with" Properties "}" ) .
Function = "(" [Parameters] ")" "=>" MonoType .
Properties = Property { "," Property } .
Property = identifier ":" MonoType .
Parameters = Parameter { "," Parameter } .
Parameter = [ "<-" | "?" ] identifier ":" MonoType .
Constraints = Constraint { "," Constraint } .
Constraint = Tvar ":" Kinds .
Kinds = identifier { "+" identifier } .
```
##### Example
```js
builtin filter : (<-tables: [T], fn: (r: T) => bool) => [T]
```
{{< page-nav prev="/flux/v0.x/spec/side-effects/" next="/flux/v0.x/spec/data-model/" >}}