* Functions: these are not literals, but instead have to be generated by evaluating complex expressions
* Containers, including:
* the **literal containers** `[]` and `{}`
* Functions: these are not literals, but instead have to be generated by evaluating complex expressions
* Containers, including:
* the **literal containers** `[]` and `{}`
* Tuples proper and other containers, to be introduced later
We've also talked about a variety of **expressions** in our language, that evaluate down to various values (if their evaluation doesn't "crash" or otherwise go awry). These include:
* All of the literal atoms and literal containers
* Variables
* Tuples proper and other containers, to be introduced later
We've also talked about a variety of **expressions** in our language, that evaluate down to various values (if their evaluation doesn't "crash" or otherwise go awry). These include:
* All of the literal atoms and literal containers
* Variables
The special syntaxes `[10, 20, 30]` are just shorthand for the more offical syntax using `&` and `[]`, and likewise for `{10, 20, 30}`. The `if ... then ... else ...` syntax is just shorthand for a `case`-construction using the literal patterns `'true` and `'false`.
The special syntaxes `[10, 20, 30]` are just shorthand for the more offical syntax using `&` and `[]`, and likewise for `{10, 20, 30}`. The `if ... then ... else ...` syntax is just shorthand for a `case`-construction using the literal patterns `'true` and `'false`.