mirror of
https://github.com/NixOS/nix
synced 2025-06-25 06:31:14 +02:00
libexpr: experimental pipe operators
This commit is contained in:
parent
874c1bdbbf
commit
e086d5d899
10 changed files with 174 additions and 9 deletions
28
doc/manual/rl-next/pipe-operators.md
Normal file
28
doc/manual/rl-next/pipe-operators.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
synopsis: "Add `pipe-operators` experimental feature"
|
||||
prs:
|
||||
- 11131
|
||||
---
|
||||
|
||||
This is a draft implementation of [RFC 0148](https://github.com/NixOS/rfcs/pull/148).
|
||||
|
||||
The `pipe-operators` experimental feature adds [`<|` and `|>` operators][pipe operators] to the Nix language.
|
||||
*a* `|>` *b* is equivalent to the function application *b* *a*, and
|
||||
*a* `<|` *b* is equivalent to the function application *a* *b*.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
nix-repl> 1 |> builtins.add 2 |> builtins.mul 3
|
||||
9
|
||||
|
||||
nix-repl> builtins.add 1 <| builtins.mul 2 <| 3
|
||||
7
|
||||
```
|
||||
|
||||
`<|` and `|>` are right and left associative, respectively, and have lower precedence than any other operator.
|
||||
These properties may change in future releases.
|
||||
|
||||
See [the RFC](https://github.com/NixOS/rfcs/pull/148) for more examples and rationale.
|
||||
|
||||
[pipe operators]: @docroot@/language/operators.md#pipe-operators
|
Loading…
Add table
Add a link
Reference in a new issue