Y combinator

kinkをOSXコンパイル

`Y := { (`f;)
  `g := { (`x;)
    `h := { (`t;)
      [x(@x;)].call(@t;);
    };
    f(@h;);
  };
  g(@g;);
};


`f := { (`ff;)
    { (`n;)
        if(@n = 0; {
            1;
        }; {
            @n * ff(@n - 1;);
        };);
    };
};
dump(Y(@f;).call(10;););