�ʲ��򸫤ƻ���ꤿ���ʤä��Τǡ�

�ǡ�����夬�ä��Τ������顣

var curry = function(f){
  var fs      = f.toString();
  var op      = fs.indexOf('(');
  var cp      = fs.indexOf(')');
  var ob      = fs.indexOf('{');
  var cb      = fs.lastIndexOf('}');
  var args    = fs.substr(op+1,cp-op-1).split(/,\s*/)��
  if (!args.length) return f; // �񤬤ʤ��ΤϤ��Τޤ��֤�
  var curried = new Function(args.pop(), fs.substr(ob+1,cb-ob-1));
  while (args.length){
    curried = new Function(args.pop(), 'return ' + 
                           curried.toString().replace(/\n/,''));
    // .toString().replace(/\n/,'') �� Opera�к�
  }
  return curried;
};

Firefox2.0.0.12, Safari 3.04, Opera 9.25 ��ư���ǧ�Ѥߡ�IE���ɼԤޤ���:)

���Ƥ��̤ꡢ��(�ؿ�)���üʸ����Ȥ��ƥХ餷�Ƽѹ���ľ���Ƥ��롣�ͤ��Ȥ��Ƥϡ�

JavaScript�ǥ��꡼�� - �ػ������Υ��ޥ�����鵭
�����󡢥ƥ����ȤĤ��Ϥ��ϡ���äѥ������� -- ������? ����ǡ�

�˶ᤤ�Τ����ɡ�eval()������ɽ����(split�ʳ��Ǥ�)�Ȥ�ʤ��Ȥ���������̣��

�������Ȥ����Х������Τ����ɡ���������ˤ���ͳ��3�Ĥ��롣

  1. ����curry�����줿�ؿ����ߤ����ä��������curry(function(a,b,c){ return a+b+c })(1)(2)(3)�Τߤ�OK�Ȥ���curry(function(a,b,c){ return a+b+c })(1)(2,3)�Ϥ���ʤ����Ȥ�����̣��
  2. curry�����줿��Τ�ʸ������ᤷ�����ˡ����ܸ���curry�����줿�Ȥ����Τ��狼��褦�ˤ������ä����㤨��curry(function(a,b,c){ return a+b+c }).toString()�ϡ����recipe����
    function anonymous(a) {
      return function anonymous(b) {
        return function anonymous(c) {
          return a + b + c;
        };
      };
    }
    

    �Ȥʤ뤱�ɡ�nanto�Ǥ���

    function (_0, _1, _2) {
      return f.apply(this, arguments);
    }
    

    �ȤʤäƸ�����α��Ƥ��ʤ���

  3. �¹�®�١�nanto�Ǥϡ���ʬŬ�Ѥ����١��ؿ�����ľ���Ƥ���Τ��٤�����

�Ǹ�Τ�Τ˴ؤ��Ƥϡ��٥���ޡ������äƤߤ���

function cook_curry(recipe, times){
  return function(){
    var spice = function(a,b,c){ return 1 };
    for (var curry = recipe(spice), i = 0; i < times; i++){
      for (var f = curry(i), j = 0; j < times; j++){
        for (var g = f(j), k = 0; k < times; k++){
          var h = g(k);
          if (h == 1) continue;
          alert('whoa!');
          return;
        }
      }
    }
  }
}

�Ȥ���������ǡ����Ť�Ĵ���������λ��֤�¬��ΤǤ��롣

�ʲ����ºݤ˷�¬��

Run with 3 iterations:

203���iteration�ǡ��������20�ܤ��餤�����Ф���

�����Haskell�Ȥ⾡��Ǥ���...��!?

Dan the Curry Cooker