= Nix expression support When `(nix reader)` is imported, it is possible to execute Nix code inline with Scheme code. Simply wrap your Nix code in curly brackets: [,scheme] ---- (write (string-append "Hello, Nix version" { builtins.nixVersion })) ---- The following values can be translated: |=== | Nix | Scheme | Notes | string | string | (Loses string context.) | integer | number | | float | number | | boolean | boolean | | lambda | procedure | (with single argument) | list | vector or list | Depends on the status of `\*translate-list-as-vector*` | attrset | alist | | builtin | procedure | | external value | symbol, other unknown objects | |=== If a value in Nix is preceded with a comma, it is unquoted, similar to `(unquote)` in a Scheme quasiquotation. If prefixed with a single quote, it is `(quote)`-d. [,scheme] ---- (define (test-append foo) (string-append "Hello, " foo)) (write { ,test-append "world!") }) ----