/**
*
* 一个参数是一阶
* f => x => f(f(f(x)))
* f => x => f(f(x))
* x => (f => x => f(f(x))) (
* (f => x => f(f(x))) (
* (f => x => f(f(x))) (x) ))
* 再调用x
* (f => x => f(f(x))) (
* (f => x => f(f(x))) (
* (f => x => f(f(x))) (x) ))
*
* (f => x => f(f(x))) (
* (f => x => f(f(x))) (
* (x => f(f(x)))
*
* (f => x => f(f(x))) (
* (x => (x => f(f(x))) (
* (x => f(f(x))) (x) //这个地方再次有个调用,相当于从最内层,一直调用到最外层
* )
*
*
* (f => x => f(f(x))) (
* (x => (x => f(f(x))) ( f(f(x)) ))
*
* (f => x => f(f(x))) ( x => f(f(f(f(x)))))
*
* (x => (x => f(f(f(f(x))))) (
* x => f(f(f(f(x))))) )
*
*/
var pow = (m, n) => n(m);
/**
* 函数里面套函数,
* 才能形成从里面最里层,一直调用到最外层的
*
* x => f(
* x => f(
* x => f(
* x => f(
* ... (x => x)(x))...(x))(x))(x))(x))
*
*/
function nest(f, n)
{
if(n == 0)
{
return x => x;
}
else
{
return x => f(nest(f, n-1)(x));
}
}