Ben Javascript bu Şema kodunu çevirmek deneyin:Bu kod neden tanımsız, ancak 2 değil?
(define (double f)
(lambda (x) (f (f x))))
(define (inc x) (+ x 1))
((double inc) 0)
((double inc) 0)
(inc (inc 0))
demektir, bu nedenle döndürür 2.
Bu benim JavaScript kodu:
var double = function(f){
return function(x) { f(f(x)); }
}
var inc = function(x) {return x+1;}
double(inc)(0);
Ama double(inc)(0)
döner tanımlanmamış, değil 2. Neden?
Bu hiçbir şeyi açıklamıyor. Bu sadece bir fark-nokta oyunu (veya düzenlenmeden önce) – Quentin
@Quentin - Manuel desen eşleştirme sahip olmak için iyi bir beceridir. – ChaosPandion
@ChaosPandion açık açıklamalar yazmanın daha iyi bir beceri olduğunu – Alnitak