mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
doc: Document function application operator
This commit is contained in:
parent
d8c1550189
commit
e225b63062
@ -3,7 +3,7 @@
|
||||
| Name | Syntax | Associativity | Precedence |
|
||||
|----------------------------------------|--------------------------------------------|---------------|------------|
|
||||
| [Attribute selection] | *attrset* `.` *attrpath* \[ `or` *expr* \] | none | 1 |
|
||||
| Function application | *func* *expr* | left | 2 |
|
||||
| [Function application] | *func* *expr* | left | 2 |
|
||||
| [Arithmetic negation][arithmetic] | `-` *number* | none | 3 |
|
||||
| [Has attribute] | *attrset* `?` *attrpath* | none | 4 |
|
||||
| List concatenation | *list* `++` *list* | right | 5 |
|
||||
@ -32,7 +32,7 @@
|
||||
[string]: ./types.md#type-string
|
||||
[path]: ./types.md#type-path
|
||||
[number]: ./types.md#type-float
|
||||
[list]: ./types.md#list
|
||||
[list]: ./types.md#type-list
|
||||
[attribute set]: ./types.md#attribute-set
|
||||
|
||||
<!-- TODO(@rhendric, #10970): ^ rationalize number -> int/float -->
|
||||
@ -48,6 +48,22 @@ If the attribute doesn’t exist, return the *expr* after `or` if provided, othe
|
||||
|
||||
[Attribute selection]: #attribute-selection
|
||||
|
||||
## Function application
|
||||
|
||||
> **Syntax**
|
||||
>
|
||||
> *func* *expr*
|
||||
|
||||
Apply the callable value *func* to the argument *expr*. Note the absence of a visible operator symbol.
|
||||
A callable value is either:
|
||||
- a [user-defined function][function]
|
||||
- a [built-in][builtins] function
|
||||
- an attribute set with a [`__functor` attribute](./syntax.md#attr-__functor)
|
||||
|
||||
> **Warning**
|
||||
>
|
||||
> This "operator" also separates [list] items, which means that calls in list items must be enclosed by parentheses.
|
||||
|
||||
## Has attribute
|
||||
|
||||
> **Syntax**
|
||||
@ -215,3 +231,5 @@ Equivalent to `!`*b1* `||` *b2*.
|
||||
> ```
|
||||
|
||||
[Pipe operator]: #pipe-operators
|
||||
[builtins]: ./builtins.md
|
||||
[Function application]: #function-application
|
||||
|
@ -218,7 +218,7 @@ a string), that attribute is simply not added to the set:
|
||||
|
||||
This will evaluate to `{}` if `foo` evaluates to `false`.
|
||||
|
||||
A set that has a `__functor` attribute whose value is callable (i.e. is
|
||||
A set that has a [`__functor`]{#attr-__functor} attribute whose value is callable (i.e. is
|
||||
itself a function or a set with a `__functor` attribute whose value is
|
||||
callable) can be applied as if it were a function, with the set itself
|
||||
passed in first , e.g.,
|
||||
|
Loading…
Reference in New Issue
Block a user