pvalues is a Clojure macro for evaluating any number of expressions in parallel and returning their results as a lazy sequence. Results retain expression order, even though evaluation proceeds concurrently through futures. section 9.1.5
Its contract is small but useful:
- Accepts any number of valid Clojure expressions, including no expressions. section 9.1.5
- Returns a lazy sequential result containing each expression’s value in input order. section 9.1.5
- Builds on pmap, alongside pcalls, for straightforward parallel computation. section 9.1.5
Evaluating independent expressions
(pvalues (+ 1 1) (Math/sqrt 2) (str "last" " " "item")) ;; (2 1.4142135623730951 "last item")
