This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-03-31
Channels
- # aws (1)
- # beginners (82)
- # boot (7)
- # cider (1)
- # cljs-dev (13)
- # cljsrn (1)
- # clojure (37)
- # clojure-dev (5)
- # clojure-italy (5)
- # clojure-spec (9)
- # clojure-uk (8)
- # clojurescript (110)
- # community-development (6)
- # datomic (1)
- # devcards (1)
- # fulcro (12)
- # lein-figwheel (1)
- # off-topic (34)
- # portkey (24)
- # protorepl (25)
- # re-frame (4)
- # reagent (29)
- # shadow-cljs (8)
- # spacemacs (11)
- # specter (3)
- # unrepl (1)
- # vim (1)
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.
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.