Previous: chains sort, Up: chains [Index]
Iteration thunks are procedures accepting no arguments and returning an
item from a collection; when the iteration finishes: the return value is
the void object. Iteration thunks can be used with the facilities of
the library (vicare containers iteration-thunks)
(see iteration thunks). The following syntactic bindings are
exported by the library (vicare containers chains).
Build and return a new iteration thunk visiting the objects from chain. The iteration proceeds forwards from chain.
(import (vicare)
(vicare containers chains)
(vicare containers iteration-thunks))
(define (xcons a b)
(cons b a))
(iteration-thunk-fold
xcons
'()
(make-chain-forwards-iteration-thunks (chain)))
⇒ ()
(iteration-thunk-fold
xcons
'()
(make-chain-forwards-iteration-thunks (chain 0 1 2 3 4 5)))
⇒ (5 4 3 2 1 0)
Build and return a new iteration thunk visiting the objects from chain. The iteration proceeds backwards from chain.
(import (vicare)
(vicare containers chains)
(vicare containers iteration-thunks))
(define (xcons a b)
(cons b a))
(iteration-thunk-fold
xcons
'()
(make-chain-backwards-iteration-thunks (chain)))
⇒ ()
(iteration-thunk-fold
xcons
'()
(make-chain-backwards-iteration-thunks
(chain-rear (chain 0 1 2 3 4 5))))
⇒ (0 1 2 3 4 5)