I've realised that I have a much better understanding of the semantics of languages that are value oriented. You avoid murky questions like this:
try:
raise Exception('')
except:
return 1
finally:
return 2
There's no 'right' answer here when choosing how a PL should work.
miniblog.
Related Posts
Some excellent safety improvements in C++26: hardening the standard library against out-of-bounds bugs, and a safer semantics for uninitialised local variables:
A really nice explanation of lisp semantics, using userland code!
For example, you can define let in terms of let* and vice versa.
@RenewedRebecca That's correct, but I was thinking that offering threading to a user might make them more tolerant of a slow interpreter.
For example, if I have an AST walker but provide Clojure semantics, users can hopefully get a big speedup by using all the cores in their application.