mirror of
https://github.com/NixOS/nix.git
synced 2025-11-25 03:39:36 +01:00
the list style is supposed to give more structure. each property is explained as concisely as possible while trying not to sound too fancy.
33 lines
804 B
Markdown
33 lines
804 B
Markdown
# Nix Language
|
|
|
|
The Nix language is
|
|
|
|
- *domain-specific*
|
|
|
|
It only exists for the Nix package manager:
|
|
to describe packages and configurations as well as their variants and compositions.
|
|
It is not intended for general purpose use.
|
|
|
|
- *declarative*
|
|
|
|
There is no notion of executing sequential steps.
|
|
Dependencies between operations are established only through data.
|
|
|
|
- *pure*
|
|
|
|
Values cannot change during computation.
|
|
Functions always produce the same output if their input does not change.
|
|
|
|
- *functional*
|
|
|
|
Functions are like any other value.
|
|
Functions can be assigned to names, taken as arguments, or returned by functions.
|
|
|
|
- *lazy*
|
|
|
|
Expressions are only evaluated when their value is needed.
|
|
|
|
- *dynamically typed*
|
|
|
|
Type errors are only detected when expressions are evaluated.
|
|
|