diff --git a/examples/addition.lila b/examples/addition.lila new file mode 100644 index 0000000..f855ad6 --- /dev/null +++ b/examples/addition.lila @@ -0,0 +1,3 @@ +fn add(a: int, b: int) int { + a + b +} diff --git a/examples/assign.lila b/examples/assign.lila new file mode 100644 index 0000000..098b506 --- /dev/null +++ b/examples/assign.lila @@ -0,0 +1,4 @@ +fn main() { + a = 0; + set a = 1; +} diff --git a/examples/block_as_expr.lila b/examples/block_as_expr.lila new file mode 100644 index 0000000..609c485 --- /dev/null +++ b/examples/block_as_expr.lila @@ -0,0 +1,6 @@ +fn main() { + val = { + a = 42; + a + }; +} diff --git a/examples/hello.lila b/examples/hello.lila new file mode 100644 index 0000000..d9339f7 --- /dev/null +++ b/examples/hello.lila @@ -0,0 +1,3 @@ +fn main() { + println("Hello there!"); +} diff --git a/examples/if_expr.lila b/examples/if_expr.lila new file mode 100644 index 0000000..145843d --- /dev/null +++ b/examples/if_expr.lila @@ -0,0 +1,7 @@ +fn main() { + val = if true { + 42 + } else { + 1337 + }; +} diff --git a/examples/infinite_calls.lila b/examples/infinite_calls.lila new file mode 100644 index 0000000..60a9d24 --- /dev/null +++ b/examples/infinite_calls.lila @@ -0,0 +1,9 @@ +fn foo(a: int) int { + b = baz(a); + b +} + +fn baz(b: int) int { + a = foo(b); + a +} diff --git a/examples/strings.lila b/examples/strings.lila new file mode 100644 index 0000000..8d9a644 --- /dev/null +++ b/examples/strings.lila @@ -0,0 +1,4 @@ +fn main() { + destination = "unknown"; + set destination = "to the moon"; +} diff --git a/examples/syracuse.lila b/examples/syracuse.lila new file mode 100644 index 0000000..436e0f3 --- /dev/null +++ b/examples/syracuse.lila @@ -0,0 +1,13 @@ +// Computes the syracuse sequence with the given inital term +// until it reaches 1 (it probably will). +fn syracuse(x0: int) int { + x = x0; + while x != 1 { + if x % 2 == 0 { + set x = x / 2; + } else { + set x = 3 * x + 1; + }; + }; + x +}