// 首先看一看这个,看看5是怎样迭代进去的。
// 先看看这个
var a = function(f){
return f(f);
}(function(c){
return c;
});
// 其实这种写法,是定义返回值成为一个函数的写法,等价于
function a(f){
return f;
}
function f(c){
return c;
}
// 或
var a = function(f){
return f;
// 其实已变成return function(f)了,f的值就代进c了
}
var f = function(c){
return c;
}
或 var a = function(f){
return function(f){
return f;
};
// 这里应该看得比较清楚了吧。
}
// 我们调用下面看看
alert(a(0));
// 先看看这个
var a = function(f){
return f(f);
}(function(c){
return c;
});
// 其实这种写法,是定义返回值成为一个函数的写法,等价于
function a(f){
return f;
}
function f(c){
return c;
}
// 或
var a = function(f){
return f;
// 其实已变成return function(f)了,f的值就代进c了
}
var f = function(c){
return c;
}
或 var a = function(f){
return function(f){
return f;
};
// 这里应该看得比较清楚了吧。
}
// 我们调用下面看看
alert(a(0));
return function(f){
return f;
};
// 这里应该看得比较清楚了吧。
}上面那部份是错了,去掉,不好意思~~
<!--
var le = function(factorial){
return function(n){
return n<=2?n:n*factorial(n-1);
};
};
var factorial = function(x){
return f(f)(x);
};
var f = function(f){
return le(factorial);
};
alert(f(5)(5));
//-->
</script>
<!--
var le = function(factorial){
return function(n){
return n<=2?n:n*factorial(n-1);
};
};
var factorial = function(x){
return f(f)(x);
};
var f = function(f){
return le(factorial);
};
var factorial = f(factorial);
alert(factorial(5));
//-->
</script>