partial = (f) -> require_length = f.length partialized = (args...) -> if require_length <= args.length # 関数に必要な引数がすでに足りている g = f.apply(null, args.slice(0, require_length)) # 適用して結果を取り出す if typeof g is "function" # 結果、関数が返ってきた # args の余りから、次の関数を更に部分適用して返す partial(g).apply(null, args.slice(require_length))) else g # 関数以外のものがきたら、適用しきった事にしてオブジェクトを返す else # 引数が足りてない場合、足りない引数を待ち受ける関数を返す partial_apply =
