With 1.3/OSX this code worked up to: user=> (sqrt 1000000000000) 1000000.0
and then hanged here: user=> (sqrt 10000000000000) ~ $ On Oct 13, 7:04 pm, "Alan O'Donnell" <alan.m.odonn...@gmail.com> wrote: > Hi everyone, > > I've encountered an unexpected NullPointerException while translating > some early SICP code into Clojure 1.3.0. In particular, I'm > implementing the iterative sqrt procedure from section 1.1.7. > > Here's my code: > > (defn square [x] (* x x)) > > (defn abs [x] > (cond > (< x 0) (- x) > :else x)) > > (defn average [x y] > (/ (+ x y) 2)) > > (defn sqrt > ([x] (sqrt 1.0 x)) > ([guess x] > (letfn [(good-enough? [guess] > (< (abs (- (square guess) x)) 0.001)) > (improve [guess] > (average guess (/ x guess)))] > (if (good-enough? guess) > guess > (recur (improve guess) x))))) > > Rather mysteriously, this works correctly for inputs less than roughly > (square 2718.259...); anything larger throws a "NullPointerException > clojure.lang.Numbers.lt (Numbers.java:3693)". > > Any ideas? -- 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