SICP – cap. 2 – Mappare con gli alberi – 38 – esercizi

Katinka Matson

Continuo da qui, copio qui.

Exercise 2.31: Abstract your answer to Exercise 2.30 [post citato] to produce a procedure tree-map with the property that square-tree could be defined as

(define (square-tree tree) 
  (tree-map square tree))

intanto la square-tree dell’esercizio precedente

(define (square-tree tree)
   (cond ((null? tree) null)
         ((not (pair? tree)) (* tree tree))
         (else (cons (square-tree (car tree))
                     (square-tree (cdr tree))))))

e la procedura square:

(define (square x)
   (* x x))

tree-map deve applicare square a ogni elemento di tree; per cui

(define (tree-map proc tree)
   (cond ((null? tree) null)
          ((not (pair? tree)) (proc tree))
          (else (cons (tree-map proc (car tree))
                      (tree-map proc (cdr tree))))))

Raccolgo square e tree-map nel file tree-map.rkt ed ottengo:

Inizialmente mi sembrava panicosa ma era solo da leggere attentamente, e astrarre 😜 Poi tutto viene automaticamente: è la stessa procedura dell’esercizio precedente —kwasy 😉

Uh! esemplare Bill the Lizard.
Diverse varianti per sicp-ex.
Anche Drewiki ha seguito la via normale.

:mrgreen:

Annunci
Post a comment or leave a trackback: Trackback URL.

Trackbacks

Rispondi

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

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. 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 )

Google+ photo

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

Connessione a %s...

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