??????????????Currying???????????????????????????·????Haskell Curry?????????????????ü?????????????÷????????????????Currying??????????“????”??

??????о??????????????????Currying?????????????Partial Application??????????????????????????????????????????????????????

??????????????????????????????к???????????????????????????????????????????

???????????б???????ж??з??????????????á???C?????У?

    int foo(int a?? int b?? int c) { 
      return a + b + c; 
    } 
    int foo23(int a?? int c) { 
      return foo(a?? 23?? c); 
    }

????foo23??????????????foo???????????????????b?????????23??

???????????????????????????????????????????????????????????????????Щ???????????

???????磬??Python?????У????????????????

    from functools import partial 
    def foo(a??b??c): 
      return a + b + c 
    foo23 = partial(foo?? b=23) 
    foo23(a = 1?? c = 3)  # => 27

??????????????Currying???????????????????????????????????м?????????????????????????????????????first-class?????????????????????????????????????????????????????????????

?????????????????????Javascript??????

    var foo = function(a) { 
      return a * a; 
    }

??????????????????д????????????????????????????????????????????

    var foo = function(a) { 
      return function(b) { 
        return a * a + b * b; 
      } 
    }

???????????????????(foo(3))(4)??????? foo(3)(4)??

?????????????????????????????????????Щ???????á?????????????foo??????????????????5?????????????var foo5 = foo(5)????OK???????foo5??foo??????????????????????????????к?????????foo?????????????????????(??????????????????????)??

?????????Javascript????????????????

    var bar = function(a?? b) { 
      return a * a + b * b; 
    }