program general_fizzbuzz; fizzbuzz(20, {[3,"Fizz"], [5,"Buzz"], [7,"Baxx"]}); proc fizzbuzz(maxno, factors); loop for i in [1..maxno] do print(+/[word : word = factors(f) | i mod f=0] ? str i); end loop; end proc; end program;