-
Notifications
You must be signed in to change notification settings - Fork 1
Home
tadruj edited this page Nov 22, 2014
·
2 revisions
Learning by comparing
#lang racket
(define (factorial n)
(if (<= n 0)
1
(* n (factorial (- n 1)))))
(define (factorial-tail n)
(define (factorial-tail-helper n accum)
(if (<= n 0)
accum
(factorial-tail-helper (- n 1) (* accum n))))
(factorial-tail-helper n 1))
(define (sqrt-ours x guess epsilon)
(if (close-enough x guess epsilon)
guess
(sqrt-ours x (generate-guess x guess) epsilon)))
(define (generate-guess x guess)
(/ (+ (/ x guess) guess) x))
(define (close-enough x guess epsilon)
(< (abs (- x (* guess guess))) epsilon))