You are missing the only command that could enlighten you :

> foo ? bar
true

The second operant is taken as a string literal, that's why you need to
evaluate variables there.
The following also works :

> foo ? ${quux}
true

-- Layus.

Le 09/05/16 à 15:25, Samuel a écrit :
> Am I holding some false assumption here? It seems the ? operator has
> different behaviour depending on how the right hand side is evaluated:
>
> nix-repl> foo = { bar = "baz"; }
>
> nix-repl> quux = "bar"
>
> nix-repl> foo ? "bar"
> true
>
> nix-repl> foo ? quux
> false
>
> nix-repl> foo ? "${quux}"
> true
>
> nix-repl> quux == "${quux}"
> true
>
> nix-repl> builtins.typeOf quux
> "string"
>

_______________________________________________
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to