C# lambda - curry usecases

后端 未结 6 1836
小蘑菇
小蘑菇 2021-01-31 12:04

I read This article and i found it interesting.

To sum it up for those who don\'t want to read the entire post. The author implements a higher order function named Curry

6条回答
  •  猫巷女王i
    2021-01-31 12:35

    I have this silly example: Uncurry version:

    void print(string name, int age, DateTime dob)
    {
        Console.Out.WriteLine(name);
        Console.Out.WriteLine(age);
        Console.Out.WriteLine(dob.ToShortDateString());
        Console.Out.WriteLine();
    }
    

    Curry Function:

    public Func>> curry(Action f)
    {
        return (name) => (age) => (dob) => f(name, age, dob);
    }
    

    Usage:

    var curriedPrint = curry(print);
    curriedPrint("Jaider")(29)(new DateTime(1983, 05, 10)); // Console Displays the values
    

    Have fun!

提交回复
热议问题