link factors procedure main(A) /A := [20,3,"Fizz",5,"Buzz",7,"Baxx"] mtable := table() limit := get(A) while *A > 0 do mtable[integer(get(A))] := get(A) mlist := sort([: key(mtable) :]) every i := 1 to limit do write((""~== fizzbuzz(i,mlist,mtable))|i) end procedure fizzbuzz(n,a,t) every (s := "", n%(f := !a) = 0) do s ||:= t[f] return s end