Nix (language): Difference between revisions

imported>Mateusauler
m Fix minor grammar mistake
imported>Fricklerhandwerk
update high-level overview and update links to official docs
Line 1: Line 1:
{{Expansion|Incomplete (for now just converting the Incomplete category to this template/flag}}
{{Expansion|Incomplete (for now just converting the Incomplete category to this template/flag}}


This [[:Category:Pedias|pedia]] article covers the syntax, semantics, typing, compilation, tooling and libraries of the Nix Expression Language.
<blockquote>The Nix language is designed for conveniently creating and composing <i>derivations</i> – precise descriptions of how contents of existing files are used to derive new files. </blockquote>
<cite>[https://nixos.org/manual/nix/stable/language/ Nix Reference Manual]</cite>


<blockquote>The Nix expression language is a pure, lazy, functional language. Purity means that operations in the language don't have side-effects (for instance, there is no variable assignment). Laziness means that arguments to functions are evaluated only when they are needed. Functional means that functions are “normal” values that can be passed around and manipulated in interesting ways. The language is not a full-featured, general purpose language. Its main job is to describe packages, compositions of packages, and the variability within packages.</blockquote>
This [[:Category:Pedias|pedia]] article covers the syntax, semantics, typing, compilation, tooling and libraries of the Nix Language.
<cite>From the [https://nixos.org/nix/manual/#ch-expression-language Nix manual]</cite>
 
{{Note|Check the [https://nixos.org/manual/nix/stable/language/ Nix Reference Manual on the Nix Language] for up-to-date documentation and [https://nix.dev/tutorials/nix-language Nix language basics] for a gentle introduction.}}


The language was designed especially for the [[Nix Package Manager]].


== Language Paradigms ==
== Language Paradigms ==