I wish I could just reply to http://arclanguage.org/item?id=14278. There I said, "you can't say yield.x instead of (yield x)" This is now fixed. https://github.com/akkartik/wart/commit/1d2b2eeeab98de4f61b0905587e3553ab762490c https://github.com/akkartik/wart/commit/be0584f3bf8c4c2d3560151bc5d6a3dea2ab7654 yield is no longer lexically scoped (like the acc in accum acc), so collect and yield can now exist in separate functions. I think this may enable a library of different kinds of generators. You could use collect to build filters over generators and so on. yield still doesn't lazily generate sequences. In the absence of first-class continuations that would require code-walker-based support for coroutines. (http://common-lisp.net/project/cl-cont) |