Skip to content

Adding iterators? #8

@simendsjo

Description

@simendsjo

I experimented with adding iterators (as cl-transducers already defined enumerator) on top of transducers, and it works fine. Is this something you would consider adding to the library or accepting a PR for?

(defparameter i
  (make-generator-iterator
   (comp (map #'1+)
         (filter #'evenp))
   nil
   (ints 0)))

;; first match on second iteration
(next i)
 ; => 1, NIL

;; next match on fourth iteration
(next i)
 ; => 3, NIL

(defparameter s
  (make-generator-iterator
   (comp (map #'1+)
         (filter #'evenp)
         (take 3))
   #'+
   (ints 0)))

(next s)
 ; => 1, NIL

(next s)
 ; => 3, NIL

;; returns sum when done
(next s)
 ; => 12, DONE

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions