2011-10-08 15 views
6

Ho un problema con questo esempioSICP Video Lecture 2

(define (+ x y) 
    (if (= x 0) 
     y 
     (+ (-1+ x) (1+ y)))) 

Qual è il problema con -1+ e 1+, quando valuto io ottenere questo risultato

  • DrScheme: - 1+: questa funzione non è definita
  • racchetta avente ad identificatore definito: -1+

ma io scrivere questo invece e wOR ks

(define (add x y) 
    (if (= x 0) 
     y 
     (+ (- x 1) (+ y 1)))) 

risposta

12

Per Racket:

  • Uso add1 invece di 1+
  • Uso sub1 invece di -1+ o 1-

Il problema è che nessuno di quei nomi sono di serie, così non è possibile utilizzarli in modo affidabile attraverso tutte le implementazioni dello schema. :-)

+0

sub1 e add1 sono grandi, penso che Sussman usi -1+ solo per spiegare questo esempio. Grazie Chris –

Problemi correlati