a simple consing reducer. When called without values, it returns its
identity, '()
. With one value, which will be a list, it reverses
the list (using reverse!
). When called with two values, it conses
the second value to the first.
(list-transduce (tmap (lambda (x) (+ x 1)) rcons (list 0 1 2 3)) ⇒ (1 2 3 4)
same as rcons, but leaves the values in their reversed order.
(list-transduce (tmap (lambda (x) (+ x 1))) reverse-rcons (list 0 1 2 3)) ⇒ (4 3 2 1)
The reducer version of any. Returns (reduced (pred? value))
if
any (pred? value)
returns non-#f. The identity is #f.
(list-transduce (tmap (lambda (x) (+ x 1))) (rany odd?) (list 1 3 5)) ⇒ #f (list-transduce (tmap (lambda (x) (+ x 1))) (rany odd?) (list 1 3 4 5)) ⇒ #t
The reducer version of every. Stops the transduction and returns
(reduced #f)
if any (pred? value)
returns #f. If every
(pred? value)
returns true, it returns the result of the last
invocation of (pred? value)
. The identity is #t.
(list-transduce (tmap (lambda (x) (+ x 1))) (revery (lambda (v) (if (odd? v) v #f))) (list 2 4 6)) ⇒ 7 (list-transduce (tmap (lambda (x) (+ x 1)) (revery odd?) (list 2 4 5 6)) ⇒ #f
A simple counting reducer. Counts the values that pass through the transduction.
(list-transduce (tfilter odd?) rcount (list 1 2 3 4)) ⇒ 2.