Code

#lang racket

(require "common.scm")

(define (p x)
  (- (* 3 x) (* 4 (cube x))))

(define (sine angle)
  (if (not (> (abs angle) 0.1))
      angle
      (p (sine (/ angle 3.0)))))

(define (sine1 angle)
  (cond
    ((not (> (abs angle) 0.1)) angle)
    (else
     (display "angle=")
     (display (/ angle 3.0))
     (newline)
     (p (sine1 (/ angle 3.0))))))

; tests

(sine 12.15)
(newline)
(sine1 12.15)

Output

-0.39980345741334

angle=4.05
angle=1.3499999999999999
angle=0.44999999999999996
angle=0.15
angle=0.049999999999999996
-0.39980345741334

We need to divide the angle 5 times. Space and time are \(O(\log{}\alpha)\) since we need one additional call when the angle is multiplied by 3.