Here is an intro to the basics in leema. The format will show some code, then explain the concepts used in that code. See what you think!
This is a function that takes a string and returns it as a palindrome.
func palindrome(fwd: Str): Str ->
let rev := str::reverse(fwd)
"$fwd$rev"
--
Now, let's break this down.
All function declarations start with the func keyword.
palindrome_me is the name of this function. It takes one parameter,
named fwd that is of type Str for string and also returns a Str.
The -> indicates the start of a block of code which is ended by
the --. What happens in between is the body of the function.
Think of the -- like an oldschool <hr/> tag in HTML.
Like many languages, Leema has a special main function to start your program. Whitespace is not significant in Leema so a function can also be written like this:
func main() -> print("this is main") --
Once a function is defined, you can call it. The palindrome above calls
the reverse function from the str module and passes fwd as the
one parameter. str::reverse(fwd)
Values are assigned labels using let statements. In this case,
the result of str::reverse() is the value we want to assign
and rev is the label we want to give it. Let statements can
use pattern matching too, but we'll show more of that later.
Variables can be turned into strings and mashed together with other
strings using string interpolation. Within the string, just prefix
the variable name with a $ and Leema will know to put the value
of that variable in that part of the string.
In this case, fwd and rev are
already strings, and they are mashed together into a single new string
as the function result. Note that the last statement is returned
as the function result, we don't need to use an explicit return statement.