私はJavaScriptにこのSchemeコードを翻訳してみてください。このコードはなぜ定義されていませんが、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.なぜですか?あなたはdouble
機能でreturn
を逃した
これは何も説明しません。それはちょっとした違いのゲーム(またはそれが編集される前)だったのです。 – Quentin
@Quentin - 手動パターンマッチングは良いスキルです。 – ChaosPandion
@ChaosPandion明確な説明を書いた方が優れたスキルです – Alnitak