diff options
author | Jasper Ras <jras@hostnet.nl> | 2025-01-08 10:48:09 +0100 |
---|---|---|
committer | Jasper Ras <jras@hostnet.nl> | 2025-01-08 10:48:09 +0100 |
commit | ed0753ad224f0c65133bd7a63180257eecd9f5e3 (patch) | |
tree | cc662868574fe17db58be9e0faadd452c84dc59c /3 resources/nix/language | |
parent | 493be30dc981eaf762a95a1218f96893b1976727 (diff) |
vault backup: 2025-01-08 10:48:09
Diffstat (limited to '3 resources/nix/language')
-rw-r--r-- | 3 resources/nix/language/keyword-import.md | 2 | ||||
-rw-r--r-- | 3 resources/nix/language/keyword-let.md | 9 | ||||
-rw-r--r-- | 3 resources/nix/language/keyword-rec.md | 17 | ||||
-rw-r--r-- | 3 resources/nix/language/keyword-with.md | 12 |
4 files changed, 40 insertions, 0 deletions
diff --git a/3 resources/nix/language/keyword-import.md b/3 resources/nix/language/keyword-import.md new file mode 100644 index 0000000..616c155 --- /dev/null +++ b/3 resources/nix/language/keyword-import.md @@ -0,0 +1,2 @@ +The import keyword brings a Nix expression from another source into scope such that we can reference it. For example, we can `import <nixpkgs>` and it would bring the entire attribute set that is Nixpkgs into scope and allows us to reference any of its attributes. + diff --git a/3 resources/nix/language/keyword-let.md b/3 resources/nix/language/keyword-let.md new file mode 100644 index 0000000..3b2f401 --- /dev/null +++ b/3 resources/nix/language/keyword-let.md @@ -0,0 +1,9 @@ +Keyword: `let` +Used to assign variables that can be used in an expression immediately following the let-binding. +```nix +let + one = 1; +in { + two = one + 1; +} +``` diff --git a/3 resources/nix/language/keyword-rec.md b/3 resources/nix/language/keyword-rec.md new file mode 100644 index 0000000..456f877 --- /dev/null +++ b/3 resources/nix/language/keyword-rec.md @@ -0,0 +1,17 @@ +Recursive attribute sets can reference values declared earlier in the same set. +keyword: `rec` +```nix +rec { + one = 1; + two = one + 1; +} +``` + +Ordering does not matter: +```nix +nix-repl> rec { two = one + 1; one = 1; } +{ + one = 1; + two = 2; +} +``` diff --git a/3 resources/nix/language/keyword-with.md b/3 resources/nix/language/keyword-with.md new file mode 100644 index 0000000..10763ff --- /dev/null +++ b/3 resources/nix/language/keyword-with.md @@ -0,0 +1,12 @@ +The `with` keyword brings all attributes from a given set, e.g nixpkgs, into the local scope. Making them accessible as if they were declared in the same file. + +An example, bringing everything from nixpkgs into scope: +``` +with import <nixpkgs>; +with python310Packages; <-- declared in nixpkgs + +buildPythonPackage <-- declared in python310Packages +``` + +The import statement is required here because imports a nix expression from another source, in this case nixpkgs. +It is not required at line two, because python310Packages itself is already in the local scope.
\ No newline at end of file |