Demonstrations of how clojure.core/concat
can produce a
StackOverflow.
This is the most obvious case: A loop that builds up a sequence by concatenation.
;; Use this Leiningen project.clj file to test the new release of the | |
;; Google Closure library JARs, version 0.0-20140226-71326067 | |
(defproject testproject "0.1.0-SNAPSHOT" | |
;; Add lein-cljsbuild or whatever else you use for ClojureScript | |
:dependencies [[org.clojure/clojure "1.5.1"] | |
[org.clojure/clojurescript "0.0-2173" | |
:exclusions [org.clojure/google-closure-library |
error in process filter: aref: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: aref: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: aref: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: aref: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: Lisp nesting exceeds `max-lisp-eval-depth' | |
error in process filter: save-current-buffer: Variable binding depth exceeds max-specpdl-size | |
error in process filter: Variable binding depth exceeds max-specpdl-size |
Clojure 1.2.0-master-SNAPSHOT | |
user=> (use 'com.stuartsierra.lazytest) | |
Warning: protocol #'com.stuartsierra.lazytest/TestInvokable is overwriting function invoke-test | |
Warning: protocol #'com.stuartsierra.lazytest/TestResult is overwriting function success? | |
nil |
[INFO] [clojure:testCompile {execution: test-compile-clojure}] | |
[DEBUG] Searching /Users/stuart/src/clojure/clojure/src/test/clojure/clojure for clojure namespaces | |
[DEBUG] Searching /Users/stuart/src/clojure/clojure/src/test/clojure/clojure/test_clojure for clojure namespaces | |
[DEBUG] Searching /Users/stuart/src/clojure/clojure/src/test/clojure/clojure/test_clojure/agents.clj for clojure namespaces | |
[DEBUG] Found namespace clojure.test-clojure.agents in file /Users/stuart/src/clojure/clojure/src/test/clojure/clojure/test_clojure/agents.clj | |
.... | |
[DEBUG] Java exectuable used: java | |
[DEBUG] Clojure classpath: /Users/stuart/src/clojure/clojure/src/test/java:/Users/stuart/src/clojure/clojure/src/test/clojure:/Users/stuart/src/clojure/clojure/target/test-classes::/Users/stuart/src/clojure/clojure/target/test-classes:/Users/stuart/src/clojure/clojure/target/classes |
<profiles> | |
<profile> | |
<id>default</id> | |
<activation> | |
<activeByDefault>true</activeByDefault> | |
</activation> | |
<dependencies> | |
<dependency> | |
<groupId>org.clojure</groupId> | |
<artifactId>clojure</artifactId> |
(ns resource | |
"Automatic resource cleanup." | |
(:import (java.lang.ref ReferenceQueue PhantomReference))) | |
(def ^:private queue (ReferenceQueue.)) | |
(def ^:private cleanup-fns {}) | |
(defn resource | |
"Returns a reference to x. At some point after the reference is |
;; An example of the "accounts" program for Venkat Subramaniam's | |
;; Programming Concurrency Workshop, part 1 | |
;; | |
;; Original Java code by Venkat Subramaniam (@venkat_s) | |
;; available at http://www.agiledeveloper.com/downloads.html | |
;; under "Workshop: Programming Concurrency" | |
;; | |
;; This code example by Stuart Sierra (@stuartsierra) | |
;; | |
;; Überconf 2011, Denver, Colorado |
;; Adapted from "An empirical comparison of C, C++, Java, Perl, | |
;; Python, Rexx, and Tcl for a search/string-processing program" | |
;; by Lutz Prechelt | |
;; This was a 15-minute effort while listening to a talk. It's *not* | |
;; well thought-out or designed. | |
;; By Stuart Sierra, | |
;; @stuartsierra on Twitter |
;;; XML parsing and clojure.zip | |
;;; There's got to be a cleaner way to do this. | |
;;; I have code like this: | |
(defn jdks-loc [xml-zipper] | |
(zip/down | |
(first | |
(filter #(let [n (zip/node %)] |