Literals

Literals are evaluated to themselves: numbers and string literals.

Let's fire up a Steel interpreter (or use the online one) to take a look at some examples.

In the following code examples, lambda precedes user input, and => indicates the evaluation result returned from the interpreter.

λ > 5
=> 5

λ > -1337
=> -1337

λ > 1.5
=> 1.5

λ > 0
=> 0

As we can see, an input text read as a sexp in a variant of an atom made of a number literal is evaluated to itself. What about string literals?

λ > "hello"
=> "hello"

λ > "steel"
=> "steel"

Nothing unexpected happens, as for characters:

λ > #\y
=> #\y

While not very fascinating by itself, it starts to become useful when built upon, as we're about to see next.