FizzBuzz
========

== Slightly modified example of thesis: Figure 4.4, page 87

The colm language has evolved since it has been described in the thesis.
With some modifications we can reactivate this example.

[source,chapel]
.figure_44.lm
----
include::code/figure_44.lm[]
----

Please Note:

* the syntax is very c-ish
* the variables are defined with their type
* there is no postfix increment operator (i = i +1)

[source,bash]
----
/opt/colm/bin/colm fizzbuzz.lm
./fizzbuzz
----

That gives us:
----
hello 0 0
hello 1 1
hello 2 2
hello 8 3
hello 9 4
----

== Real FizzBuzz

The fizzbuzz test is often used to check if someone has programming skills.
It is the next logical step to 'hello world'.

[source,chapel]
.fizzbuzz.lm
----
include::code/fizzbuzz.lm[]
----

It appears that there is no modulo operator ('%').
Therefor we'll resort to a function.
Writing a function seems rather straight forward.

Please note:
* that '&&' is working.
* The return type is needed, but if 'nil' is returned by default.

[source,bash]
----
/opt/colm/bin/colm fizzbuzz.lm
./fizzbuzz
----

That gives us
----
FizzBuzz
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
----
