Echo Writes Code

fizzbuzz.orchid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import! orchid.console;
import! orchid.io;

main! {
	bind! i (range 0 100) {
		execute! fizzbuzz i;
	}
}

procedure! fizzbuzz :: (i: U32) -> (io.Result None) {
	branch! (classify i) {
		(0, 0) -> execute! console.format_line! "{}" i;
		(0, 1) -> execute! console.format_line! "fizz {}" i;
		(1, 0) -> execute! console.format_line! "buzz {}" i;
		(1, 1) -> execute! console.format_line! "fizzbuzz {}" i;
	}
}

function! classify :: (i: U32) -> (U32, U32) {
	evaluate! (i % 3, i % 5);
}