core-concat rewritten as functional: step(cs) returns pure thunk, each rest-thunk captures its own (cs) state. No shared mutable state — parallel paths through the same concat are independent. core-map multi-coll rewritten as stateless: step(cs,idxs,reals) returns thunk with fresh copies of all cursor arrays. No shared mutable cursors — each invocation of the map step is independent. ls-first/ls-rest handle :jolt/pending sentinel as nil. Empty-cell guards prevent bounds errors on exhausted collections. Verified: ones (infinite), map+ on ones, concat, all existing tests pass. fib-seq produces [0 1] (2 elements) with clean cycle break via sentinel. Full infinite self-referencing needs deeper lazy-seq architecture (per-element LazySeq with sv sentinel). |
||
|---|---|---|
| .. | ||
| clojure | ||
| jolt | ||
| api.janet | ||
| compiler.janet | ||
| core.janet | ||
| evaluator.janet | ||
| loader.janet | ||
| main.janet | ||
| phm.janet | ||
| reader.janet | ||
| types.janet | ||