Fun with Generics - Currying

Sriram writes about aninteresting use of C# 2.0 Generics to implement "Currying," a technique which is normally reserved for functional programming languages.

Currying is the use of virtual functions which fix an function argument to a value and remove the argument:

  In computer science, currying is the technique of transforming a function taking multiple arguments into a function that takes a single argument (the first of the arguments to the original function) and returns a new function that takes the remainder of the arguments and returns the result. The technique was named by Christopher Strachey after logician Haskell Curry, though it was invented by Moses Schönfinkel and Gottlob Frege.

Intuitively, currying says "if you fix some arguments, you get a function of the remaining arguments". So if you take the function in two variables yx, and fix y = 2, then you get the function in one variable 2x.

[Wikipedia]

It seems a lot more academic than practical to me, but it's interesting to see what the kind of thing that C# Generics will enable.

3 Comments

Comments have been disabled for this content.