/* Test first part of enhanced case statements */ /* ===== FIZZBUZZ IMPLEMENTATION ===== */ /* Classic FizzBuzz using multi-value patterns with expressions */ fizzbuzz : n -> when (n % 3) (n % 5) is 0 0 then "FizzBuzz" 0 _ then "Fizz" _ 0 then "Buzz" _ _ then n; /* Test FizzBuzz implementation */ fizzbuzz_15 : fizzbuzz 15; /* Should be "FizzBuzz" */ fizzbuzz_3 : fizzbuzz 3; /* Should be "Fizz" */ fizzbuzz_5 : fizzbuzz 5; /* Should be "Buzz" */ fizzbuzz_7 : fizzbuzz 7; /* Should be 7 */ /* ===== TABLE ACCESS IN WHEN EXPRESSIONS ===== */ /* User data for testing */ admin_user : {role: "admin", level: 5, name: "Alice"}; user_user : {role: "user", level: 2, name: "Bob"}; guest_user : {role: "guest", level: 0, name: "Charlie"}; /* Access control using table access in patterns */ access_level : user -> when user.role is "admin" then "full access" "user" then "limited access" _ then "no access"; /* Test access control */ admin_access : access_level admin_user; user_access : access_level user_user; guest_access : access_level guest_user; /* Output results */ ..out "FizzBuzz Results:"; ..out fizzbuzz_15; ..out fizzbuzz_3; ..out fizzbuzz_5; ..out fizzbuzz_7; ..out "Access Control Results:"; ..out admin_access; ..out user_access; ..out guest_access;