Hacker News new | ask | show | jobs
by __MatrixMan__ 651 days ago
One thing that struck me while learning nushell is that instead of:

    $ echo "hello world"
    hello world
I can do:

    $ "hello world"
    hello world
Is this an indication that it is expression oriented? (just checking that I've understood the phrase).
2 comments

This is the statement/expression distinction; `echo "hello world"` is a statement that, when evaluated, has the side effect of printing "hello world" to stdout (or wherever), and has no value (for the purposes of this example).

`"hello world"` is an expression with the literal string value "hello world"; your REPL probably prints out that expression's value once it is evaluated for convenience.

FWIW I'm not actually familiar with nushell and am speaking fairly generally about statements vs. expressions.

Yes.

Essentially, statements have no value (or return no value). Expressions have a value.