(require 'generator)
-;; Basic stuff
+;;;; Basic stuff
(defmacro iterator-make (&rest body)
"Create an anonymous iterator.
`(funcall (iter-lambda () ,@body)))
-;; Special simple iterators
+;;;; Special simple iterators
(defun iterator-from-elts (&rest elements)
"Return an iterator generating the ELEMENTS."
(iterator-make (while t (iter-yield (prog1 i (cl-incf i))))))))
-;; Operations on iterators, transducers
+;;;; Operations on iterators, transducers
(defun iterator-filter (predicate iterator)
"Return an iterator filtering ITERATOR with PREDICATE.
iterator))))
-;; Iteration
+;;;; Iteration
(defun iterator-flush (iterator)
"Request all elements from ITERATOR, for side effects only."
(iter-end-of-sequence nil)))
-;; Processing elements
+;;;; Processing elements
(defun iterator-reduce (function init iterator)
"Reduce two-argument FUNCTION across ITERATOR starting with INIT.
(iterator-map function iterator))))
-;;; ILists - "Delayed" lists via iterators
+;;;; ILists - "Delayed" lists via iterators
(defconst ilist--last-link-tag 'ilist--last-link-tag)