factorial n, where n <= 0  := 1
factorial n    := foldr * 1 take n [1..]这是一个函数式的计算阶乘的C语言.不知道函数式的javascritp版本是什么样的 ?

解决方案 »

  1.   

    你可以搜索下
    javascript 阶乘
    现成的例子怎么写
      

  2.   


    function factorial(n) {
          if (n == 1){
              return 1;
          }
          else {
              return n * arguments.callee(n - 1);
          } 
        }    
        alert(factorial(5));
      

  3.   

    不考虑溢出的话:function factorial(n) {
      if ((n <= 0) || (n == 1)) return 1
      else return n * factorial(n-1)
    }
      

  4.   

    functional的:function factorial1(n, k) {
    (function(b){
    if(b){
    k(1);
    } else {
    (function(nm1){
    factorial1(nm1,function(fnm1){k(n*fnm1);});
    })(n-1);
    }
    })(n==0);
    }
    factorial1(4,function(x){alert(x);});