Surely, the lispiest way is to write an interpreter! Write a function fizzbuzz-eval so that the following is a solution (left as an exercise). ;)
(fizzbuzz-eval
100
'(((3 5) (print "FizzBuzz"))
((3) (print "Fizz"))
((5) (print "Buzz"))
(() print-number)))