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) {
call! fizzbuzz i;
}
}
proc! fizzbuzz :: (i: U32) -> (io.Result None) {
branch! (classify i) {
(0, 0) -> console.format_line! "{}" i;
(0, 1) -> console.format_line! "fizz {}" i;
(1, 0) -> console.format_line! "buzz {}" i;
(1, 1) -> console.format_line! "fizzbuzz {}" i;
}
}
func! classify :: (i: U32) -> (U32, U32) {
eval! (i % 3, i % 5);
}