From ed0753ad224f0c65133bd7a63180257eecd9f5e3 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Wed, 8 Jan 2025 10:48:09 +0100 Subject: vault backup: 2025-01-08 10:48:09 --- 3 resources/nix/language/keyword-import.md | 2 ++ 3 resources/nix/language/keyword-let.md | 9 +++++++++ 3 resources/nix/language/keyword-rec.md | 17 +++++++++++++++++ 3 resources/nix/language/keyword-with.md | 12 ++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 3 resources/nix/language/keyword-import.md create mode 100644 3 resources/nix/language/keyword-let.md create mode 100644 3 resources/nix/language/keyword-rec.md create mode 100644 3 resources/nix/language/keyword-with.md (limited to '3 resources/nix/language') 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 ` 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 ; +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 -- cgit v1.2.3