Re:The Idea of Lisp
by mroll on Friday December 16, 2016 @10:27AM
(#13193858)
This example of "everything as an expression" doesn't take it as far as Tcl, though. In the above code snippet, the conditional body is surrounded by braces, which are syntax. In Tcl, the second argument to the 'if' command is also an expression, which only uses braces as a quoting mechanism, if it needs to.
[ Parent
| on HN ]
I'm not sure I understand why it matters if the syntax requires braces or not. The things inside the braces are still expressions.
It matters because if the braces are not syntax, you can decide what code to execute as the condition body at runtime.
set condition-body {puts "Hello, world"}
if { $condition } $condition-body
To get this to run, you need to splice in the condition-body like so, if { $condition } {*}$condition-body
But you get the point.But the "then" and "else" parts of the Rust "if" are expressions. What you're talking about doesn't seem to be related to which things are expressions, it's more like being able to eval code at runtime.