|context> => |context: Fizz Buzz exercise in BKO> -- task: -- For numbers 1 through 100, -- if the number is divisible by 3 print Fizz; -- if the number is divisible by 5 print Buzz; -- if the number is divisible by 3 and 5 (15) print FizzBuzz; -- else, print the number. -- NB: -- bug1: nested brackets are broken in current parser -- bug2: sw files don't correctly process the map function, and most likely similar. |context> => |context: Fizz Buzz exercise in BKO: v1> |list> => range(|1>,|100>) fizz-buzz-0 |*> #=> |_self> fizz-buzz-1 |*> #=> if(arithmetic(|_self>,|%>,|3>) == |0>,|Fizz>,|>) fizz-buzz-2 |*> #=> if(arithmetic(|_self>,|%>,|5>) == |0>,|Buzz>,|>) fizz-buzz-3 |*> #=> if(arithmetic(|_self>,|%>,|15>) == |0>,|FizzBuzz>,|>) map[fizz-buzz-0,fizz-buzz] "" |list> map[fizz-buzz-1,fizz-buzz] "" |list> map[fizz-buzz-2,fizz-buzz] "" |list> map[fizz-buzz-3,fizz-buzz] "" |list> |context> => |context: Fizz Buzz exercise in BKO: v2> |list> => range(|1>,|100>) is-zero |*> => |False> is-zero |0> => |True> fizz-buzz-0 |*> #=> |_self> -- current parser can't handle the nested () fizz-buzz-1 |*> #=> if(is-zero arithmetic(|_self>,|%>,|3>),|Fizz>,|>) fizz-buzz-2 |*> #=> if(is-zero arithmetic(|_self>,|%>,|5>),|Buzz>,|>) fizz-buzz-3 |*> #=> if(is-zero arithmetic(|_self>,|%>,|15>),|FizzBuzz>,|>) map[fizz-buzz-0,fizz-buzz] "" |list> map[fizz-buzz-1,fizz-buzz] "" |list> map[fizz-buzz-2,fizz-buzz] "" |list> map[fizz-buzz-3,fizz-buzz] "" |list> |context> => |context: Fizz Buzz exercise in BKO: v3> -- define our list |list> => range(|1>,|100>) -- define is-zero function is-zero |*> => |False> is-zero |0> => |True> -- define is-mod functions is-mod-3 |*> #=> is-zero arithmetic(|_self>,|%>,|3>) is-mod-5 |*> #=> is-zero arithmetic(|_self>,|%>,|5>) is-mod-15 |*> #=> is-zero arithmetic(|_self>,|%>,|15>) -- apply them map[is-mod-3] "" |list> map[is-mod-5] "" |list> map[is-mod-15] "" |list> -- define fizz-buzz functions fizz-buzz-0 |*> #=> |_self> fizz-buzz-1 |*> #=> if(is-mod-3 |_self>,|Fizz>,|>) fizz-buzz-2 |*> #=> if(is-mod-5 |_self>,|Buzz>,|>) fizz-buzz-3 |*> #=> if(is-mod-15 |_self>,|FizzBuzz>,|>) -- apply them map[fizz-buzz-0,fizz-buzz] "" |list> map[fizz-buzz-1,fizz-buzz] "" |list> map[fizz-buzz-2,fizz-buzz] "" |list> map[fizz-buzz-3,fizz-buzz] "" |list>