SICP – cap. 1 – procedure come metodo generale – esercizio – 45

pop4

Dopo una lunga pausa dovuta a diversi motivi torno a SICP, continuando da qui; oggi esercizi, qui.

Exercise 1.35.  Show that the golden ratio […] is a fixed point of the transformation x ↦ 1 + 1/x, and use this fact to compute by means of the fixed-point procedure.

Prima di cominciare quanto vale il rapporto aureo ϕ?

s96

L’esercizio usa la procedura fixed-point introdotta nel post precedente (di questa serie si SICP), questa:

(define tolerance 0.00001)
(define (fixed-point f first-guess)
  (define (close-enough? v1 v2)
    (< (abs (- v1 v2)) tolerance))
  (define (try guess)
    (let ((next (f guess)))
      (if (close-enough? guess next)
          next
          (try next))))
  (try first-guess))

Uh! ecco:

s97

Si, confesso: ho barato; questa è la soluzione di Bill the Lizard, rockz! 😀
Però è anche la soluzione più semplice, lambda compreso (se uno proprio volesse potrebbe definire una procedura con nome (find-phi, p.es.) ma viene usata solo qui.

Di solito cito anche altri nerds ma per questo esercizio le loro soluzioni mi sembrano meno belle. Nessuno spiega bene come Bill 😀

Approfittando della pausa con Octave continuerò con SICP, lo lovvo anche se sono spesso costretto a lasciarlo in disparte 😦

:mrgreen:

Posta un commento o usa questo indirizzo per il trackback.

Trackback

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: