Fork me on GitHub

speaking of clojure and JVM, is laziness rooted in the JVM or shoehorned on top of it by clojure? I think the former but not sure.


Any plans for introducing (more/better) compiler optimizations in 1.10?


the jvm has no concept of laziness


nor does clojure really, clojure has a concept of lazily produced sequences, not about lazy evaluation


@matan I like to think of laziness in Clojure as the natural outcome of abstracting the lisp cons cell. Most cons cells are of two fields: head, tail. What if tail was a function that produced the tail? If that was done, we'd probably want to memoize and restrict multi-threaded access to the function so that we don't re-run it every time some one asked for the tail. And that's about all there is to laziness in Clojure.