[Nix-dev] Variable Assignment in Nix Expressions
    Roger Qiu 
    roger.qiu at polycademy.com
       
    Mon Aug 18 11:21:29 CEST 2014
    
    
  
Hello,
How come the nix-repl allows a freestanding variable assignment, but the 
actual Nix expressions don't?
```
# allowed in nix-repl but not in normal nix
x = 5
```
```
# allowed in normal nix and nix-repl
let x = 5; in {}
```
Apparently this has something to do with the purity and lambda calculus. 
Assigning a variable is basically passing this variable into the 
function scope of the body of code (which is done in Nix as let + {} 
attributes). But wouldn't it be easier if we could have simpler variable 
assignment semantics and allow a straightforward x = 5 in a function 
body or outside of the function body without having to explicitly 
pushing it into a set? Even Haskell and Erlang allow you to define free 
standing variables.
Thanks,
Roger
    
    
More information about the nix-dev
mailing list