29 lines
516 B
Common Lisp
29 lines
516 B
Common Lisp
(require 'generator)
|
|
(setq lexical-binding t)
|
|
|
|
(iter-defun exp-gen (pow)
|
|
(let ((i -1))
|
|
(while
|
|
(setq i (1+ i))
|
|
(iter-yield (expt i pow)))))
|
|
|
|
(iter-defun flt-gen ()
|
|
(let* ((g (exp-gen 2))
|
|
(f (exp-gen 3))
|
|
(i (iter-next g))
|
|
(j (iter-next f)))
|
|
(while
|
|
(setq i (iter-next g))
|
|
(while (> i j)
|
|
(setq j (iter-next f)))
|
|
(unless (= i j)
|
|
(iter-yield i)))))
|
|
|
|
|
|
(let ((g (flt-gen))
|
|
(o 'nil))
|
|
(dotimes (i 29)
|
|
(setq o (iter-next g))
|
|
(when (>= i 20)
|
|
(print o))))
|