5
我嘗試這個計劃的代碼轉換爲Javascript:爲什麼這段代碼不確定,但不是2?
(define (double f)
(lambda (x) (f (f x))))
(define (inc x) (+ x 1))
((double inc) 0)
((double inc) 0)
意味着(inc (inc 0))
,所以返回2
這是我的Javascript代碼:
var double = function(f){
return function(x) { f(f(x)); }
}
var inc = function(x) {return x+1;}
double(inc)(0);
但double(inc)(0)
回報不確定,不是2.爲什麼?
這並不能解釋任何事情。這只是一個不同尋常的遊戲(或者在它被編輯之前) – Quentin
@Quentin - 手動模式匹配是一種很好的技巧。 – ChaosPandion
@ChaosPandion寫清楚的解釋是更好的技巧 – Alnitak