After discussing with a couple of folks in IRC (big thank you to hyPiRion for his help), I opened a ticket to address this bug here: http://dev.clojure.org/jira/browse/CLJ-1181
Long story short, ((formatter-out "~<#(~;~@{~w~^ ~_~}~;)~:>") nlis) expects nlis to be a sequence, but in the case of (^:once fn* [x] x) it is a symbol. Thanks, -- '(Devin Walters) On Sunday, March 10, 2013 at 3:36 PM, Devin Walters wrote: > Could anyone help me understand why the following code is breaking? > > (require '[clojure.pprint :refer [with-pprint-dispatch code-dispatch pprint]]) > (with-pprint-dispatch code-dispatch (pprint (read-string "(^:once fn* [x] > x)"))) > > IllegalArgumentException Don't know how to create ISeq from: > clojure.lang.Symbol clojure.lang.RT.seqFrom (RT.java:505) > #( > > The "#(" is not a typo. It starts to print and then fails. Looking at the > code, it looks like there's an issue here: > (defn- pprint-anon-func [alis] > (let [args (second alis) > nlis (first (rest (rest alis)))] > (if (vector? args) > (binding [*symbol-map* (if (= 1 (count args)) > {(first args) "%"} > (into {} > (map > #(vector %1 (str \% %2)) > args > (range 1 (inc (count args))))))] > ((formatter-out "~<#(~;~@{~w~^ ~_~}~;)~:>") nlis)) > (pprint-simple-code-list alis)))) > > > > I squinted at it for a bit, but I'm not sure what's up. Anyone have any ideas? > > Thanks, > -- > '(Devin Walters) > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.