Clojure provides a mechanism for early termination from reduce expressions with 'reduced': https://clojuredocs.org/clojure.core/reduced It's unusual to see a special early termination function: most PLs only provide general control flow constructs like exceptions.