(de powers (M) (co (intern (pack 'powers M)) (for (I 0 (inc 'I)) (yield (** I M)) ) ) ) (de filtered (N M) (co 'filtered (let (V (powers N) F (powers M)) (loop (if (> V F) (setq F (powers M)) (and (> F V) (yield V)) (setq V (powers N)) ) ) ) ) ) (do 20 (filtered 2 3)) (do 10 (println (filtered 2 3)))