Guest User

ycombinator

a guest
Jun 14th, 2012
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function(){
  2.     var ycomb={};
  3.     var Y=ycomb.Y=function(f) {
  4.     return (
  5.             (function (x) {
  6.         return f(function (v) { return x(x)(v); }); })
  7.             (function (x) {
  8.         return f(function (v) { return x(x)(v); }); })
  9.     );
  10.     };
  11.     var ilog=ycomb.ilog=function(b, j){
  12.     var n=1;
  13.     if(b>j) return 0;
  14.     else{
  15.         Y(function(fn){
  16.         return function(d){
  17.             var a=d[0];var b=d[1];var c=d[2];
  18.             if(b>c) return c;
  19.             else{
  20.             n+=a;
  21.             var h=fn([2*a,b*b,(c-c%b)/b]);
  22.             if(b>h) return h;
  23.             else{
  24.                 n+=a;
  25.                 return (h-h%b)/b;
  26.             }
  27.             }
  28.         }})([1,b,(j-j%b)/b]);
  29.         return n;
  30.     };
  31.     };
  32.     global.ycomb=ycomb;
  33. })(this);
  34.  
  35. /*
  36. ilog(2,928475)
  37. > (OUTER-YCOMBINATOR #<fn>)
  38.  > (FUNCTION-WRAPPER #<fn>)
  39.  < (#<fn>)
  40. < (#<fn>)
  41. > (INTEGER-LOGARITHM-FUNCTION (1 2 464237))
  42.  > (INNER-YCOMBINATOR (2 4 232118))
  43.   > (OUTER-YCOMBINATOR #<fn>)
  44.    > (FUNCTION-WRAPPER #<fn>)
  45.    < (#<fn>)
  46.   < (#<fn>)
  47.   > (INTEGER-LOGARITHM-FUNCTION (2 4 232118))
  48.    > (INNER-YCOMBINATOR (4 16 58029))
  49.     > (OUTER-YCOMBINATOR #<fn>)
  50.      > (FUNCTION-WRAPPER #<fn>)
  51.      < (#<fn>)
  52.     < (#<fn>)
  53.     > (INTEGER-LOGARITHM-FUNCTION (4 16 58029))
  54.      > (INNER-YCOMBINATOR (8 256 3626))
  55.       > (OUTER-YCOMBINATOR #<fn>)
  56.        > (FUNCTION-WRAPPER #<fn>)
  57.        < (#<fn>)
  58.       < (#<fn>)
  59.       > (INTEGER-LOGARITHM-FUNCTION (8 256 3626))
  60.        > (INNER-YCOMBINATOR (16 65536 14))
  61.         > (OUTER-YCOMBINATOR #<fn>)
  62.          > (FUNCTION-WRAPPER #<fn>)
  63.          < (#<fn>)
  64.         < (#<fn>)
  65.         > (INTEGER-LOGARITHM-FUNCTION (16 65536 14))
  66.         < (14)
  67.        < (14)
  68.       < (14)
  69.      < (14)
  70.     < (14)
  71.    < (14)
  72.   < (3 2)
  73.  < (3 2)
  74. < (1 1)
  75. => 19
  76. */
Advertisement
Add Comment
Please, Sign In to add comment