JoyでFizzBuzz(2)

少しパワーアップしました。

DEFINE rem2 == swap [integer] [swap rem 0 =] [pop pop false] ifte;
lst == [] cons;
fbq == [dup] dipd [rem2] dip [lst swap lst] dip lst swap ifte;
fbnum == 15 "FizzBuzz" fbq
3 "Fizz" fbq
5 "Buzz" fbq;
fblist == [fbnum] map;
interval == swap [<=]
[pop [] cons]
[dup [swap] dip succ]
[cons]
linrec.

lstは何か他にありそう。rem2はあざとい?でもfbnumはスタックいじってる感が出ているような。