In Wipple, you can declare new variables using the
: operator, which is pronounced "is":
favorite-color : orange -- "favorite color is orange"
By convention, variable names are lowercase and words are separated using dashes, like in CSS. If
thisStyle is called "camel case", then
this-style is called "kebab case"!
: must stand on its own, surrounded by whitespace. This doesn't work:
You can redeclare variables within the same block. But note, redeclaring is not the same as reassigning! Any code referencing the previous variable's value will continue to do so.
n : 1 add : x -> x + n n : 2 add 10 -- 11, not 12
If you want to change the value of an existing variable at runtime, you can do so using
n : Mutable 1 add : x -> x + get n n | set! 2 add 10 -- 12
This isn't magic; the actual value of
n is a reference to a piece of memory, which remains unchanged, but the value stored at that piece of memory can be mutated (hence the need for
get, which reads from the memory, and
set!, which writes to it).
Finally, you can create constants by specifying the type of the variable above its declaration:
answer :: Number answer : 42
Constants may not be redeclared in the same scope. In addition, constants are lazily loaded and may not capture variables. A file consisting entirely of constants may be imported by another file with