You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Nushell, blocks control their own environment. Changes to the environment are scoped to the block where they happen.
However, that's not really true for blocks technically, but it is for closures and command definitions. For example
if1>0 { cd .. }
will change the current directory. You can also mutate other variables in blocks of course.
I've been trying to think up a good way to reword that section but I can't think of anything off the top of my head. It could say "commands and closures" rather than blocks, but that feels like it has less impact when talking about a significant design decision and might be a bit confusing before both concepts have really been introduced. I'm not sure there is a term or concept in Nushell at the moment that groups together commands and closures, but excludes blocks.
Anyone else have any ideas?
The text was updated successfully, but these errors were encountered:
Given the Block terminology definition you linked, it's certainly wrong.
There's no book or language ref docs on functions or commands specifically, but closure and function or command seem to be the correct terminology.
Maybe in this case we can simply evade using the general, wrong block terminology.
I think the docs should not only mention how env behaves, but contrast it.
Something like
In Nushell, closure and function blocks control their own environment. Changes to the environment are scoped to the block where they happen. Flow control blocks do not scope variables or the environment.
I wonder if it's even worth it to describe it like this, instead of a neutral general two-case description. But I guess it's because of the "thinking in nu" and headline.
In the "Nushell's environment is scoped" section of the Thinking in Nu page, it says that
However, that's not really true for blocks technically, but it is for closures and command definitions. For example
will change the current directory. You can also mutate other variables in blocks of course.
I've been trying to think up a good way to reword that section but I can't think of anything off the top of my head. It could say "commands and closures" rather than blocks, but that feels like it has less impact when talking about a significant design decision and might be a bit confusing before both concepts have really been introduced. I'm not sure there is a term or concept in Nushell at the moment that groups together commands and closures, but excludes blocks.
Anyone else have any ideas?
The text was updated successfully, but these errors were encountered: