Its a part of Chapter 17, just so you know its only a small exercise showing the beauty of Clojure, Lisp and Macros. Its only about 6 six pages. The footnote:
The code in this section is based on *debug-repl* created by the amazing George Jahad, extended by Alex Osborne, and integrated into Swank-Clojure by Hugo Duncan. So maybe check those out. That said I think its a really good book and Manning often has specials going so you get Joy of Clojure 1 & 2 for cheap. On Friday, January 24, 2014 8:51:16 PM UTC-5, t x wrote: > > I am willing to buy the book for this chapter alone. > > However, looking at http://www.manning.com/fogus2/ I can't seem to find > it. Which chapter is it? > > > > On Fri, Jan 24, 2014 at 3:46 PM, Jarrod Swart <jcs...@gmail.com<javascript:> > > wrote: > >> The second version of The Joy of Clojure talks about building a debugging >> repl that allows insertion of breakpoints into code. Perhaps something >> similar could be done here. >> >> >> On Friday, January 24, 2014 4:38:59 PM UTC-5, t x wrote: >> >>> Found it, apparently it's >>> >>> debug-repl => swank-clojure => CDT => ritz >>> >>> It appears cider does not yet support this, so ritz is probably the >>> "most powerful" at the moment. >>> >>> >>> On Fri, Jan 24, 2014 at 3:39 AM, t x <txre...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> One thing I miss from pre-Clojure scheme days is as follows: >>>> >>>> ## What I want >>>> >>>> 1 => (foo) ;; I'm calling foo at the repl >>>> ... foo executes ... >>>> ... at some point, an exception is thrown ... >>>> >>>> 2 => my interpreter _starts a new repl_ >>>> * at the point where the exception was thrown >>>> * lets me examine local environment variables >>>> * lets me execute commands >>>> * lets me "resume" the execution >>>> >>>> >>>> ## Why "it can't work" >>>> >>>> Now, I understand why this can not work in general in Clojure, i.e. the >>>> following example: >>>> >>>> (defn foo [] >>>> (.someJavaFunctionThatThrowsException object)) >>>> >>>> In this case, the above is impossible since the exception is thrown >>>> from _java land_ rather than Clojure land. >>>> >>>> >>>> ## Why it might work >>>> >>>> Now, I'm not writing any code in java. The work I'm doing is pure >>>> clojure. I can throw when the exception is thrown. >>>> >>>> >>>> Is there some library, where instead of doing >>>> >>>> (defn foo [] >>>> ... >>>> (throw (ex-data ...)) >>>> ...) >>>> >>>> I instead do: >>>> >>>> (defn foo [] >>>> ... >>>> (something-went-wrong-please-fire-up-a-repl) >>>> ...) >>>> >>>> ? >>>> >>>> Thanks! >>>> >>> >>> -- >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- -- 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.