I don't quite get the idea so just to clarify. Does this mean if the
optional argument is given like this:
(list-queue-unfold (lambda (seed) (zero? seed))
(lambda (seed) (* seed seed))
(lambda (seed) (- seed 1))
'(a b c))
Then the queue storage would look like this?
(100 81 64 49 36 25 16 9 4 1 a b c)
If this is the case, I think it's rather weird. I would expect that all
elements have the same type (or at least the types mapper procedure
returns). But if the procedures are allowed to take the tail elements, this expectation would be broken.