Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2010
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Y(var outer)
  2. {
  3.     return (
  4.         function(var func)
  5.         {
  6.             return outer(
  7.                 function(var arg)
  8.                 {
  9.                     return func(func)(arg);
  10.                 }
  11.             );
  12.         }
  13.     )(
  14.         function(var func)
  15.         {
  16.             return outer(
  17.                 function(var arg)
  18.                 {
  19.                     return func(func)(arg);
  20.                 }
  21.             );
  22.         }
  23.     );
  24. }
  25.  
  26. function factorial_recursive(int n)
  27. {
  28.     if(n == 0) return 1;
  29.     else return n * factorial_recursive(n - 1);
  30. }
  31.  
  32. function main()
  33. {
  34.     var factorial_y = function(var func)
  35.     {
  36.         return function(int n)
  37.         {
  38.             if(n == 0) return 1;
  39.             else return n * func(n - 1);
  40.         };
  41.     };
  42.  
  43.     say("Recursive factorial gives: ", factorial_recursive(6));
  44.     say("Y-Combinator factorial gives: ", Y(factorial_y)(6));
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement