io.randomseed.lazy-map
Main namespace, contains utility functions, type definitions, and lazy map functions.
Public API is ->LazyMap, ->?LazyMap, lazy-map, force-map, freeze-map, lazy-map-dispatch.
->?LazyMap
(->?LazyMap map)Behaves the same as ->LazyMap, except that if m is already a lazy map, returns it directly. This prevents the creation of a lazy map wrapping another lazy map, which (while not terribly wrong) is not the best idea.
freeze-map
(freeze-map val map)Replace all the unrealized values in a lazy map with placeholders, returning a regular map. No matter what is done to the returned map, the values in the original map will not be forced. v can be an object to use for all the values or a function of the key.
is-not-thrown?
macro
(is-not-thrown? e expr)Used in clojure.test assertions because (is (not (thrown? …))) doesn’t work. See http://acidwords.com/posts/2015-07-23-fixing-negation-in-clojure-test.html
lazy-map
macro
(lazy-map map)Constructs a lazy map from a literal map. None of the values are evaluated until they are accessed from the map.
lazy-map-dispatch
(lazy-map-dispatch obj)This is a dispatch function for clojure.pprint that prints lazy maps without forcing them.
lazy-map-entry
(lazy-map-entry k v)Construct a lazy map entry with the given key and value. If you want to take advantage of the laziness, the value should be a delay.
map-entry
(map-entry k v)Creates a map entry (as returned by calling seq on a map) with the given key and value.