cerco di tradurre questo codice Scheme a JavaScript:Perché questo codice non è definito ma non 2?
(define (double f)
(lambda (x) (f (f x))))
(define (inc x) (+ x 1))
((double inc) 0)
((double inc) 0)
significa (inc (inc 0))
, quindi restituisce 2.
Questo è il mio codice Javascript:
var double = function(f){
return function(x) { f(f(x)); }
}
var inc = function(x) {return x+1;}
double(inc)(0);
Ma double(inc)(0)
rendimenti indefinito, non 2. Perché?
Questo non spiega nulla. È solo un gioco di spot-the-difference (o lo era prima che fosse modificato) – Quentin
@Quentin - La corrispondenza del pattern manuale è una buona abilità da avere. – ChaosPandion
@ChaosPandion scrivere spiegazioni chiare è una competenza migliore da avere – Alnitak