Guest User

Untitled

a guest
May 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defn sq[n]  
  2.   (loop [candidate (/ n 2.0)
  3.          prev-candidate (double n)]
  4.       (let [step (/ (abs (- prev-candidate candidate)) 2)
  5.             square (* candidate candidate)
  6.             epsilon (abs (- n square))]
  7.         (if (< epsilon 0.001) (round candidate)      
  8.           (if (> square n) (recur (- candidate step) candidate) (recur (+ candidate step) candidate))))))
  9.  
  10. (fact (sq 4) => 2)
  11. (fact (sq 16) => 4)
  12. (fact (sq 9) => 3)
  13. (fact (sq 49) => 7)
Add Comment
Please, Sign In to add comment