How to use higher-order functions in C#

2 Answers

0 votes
using System;

class Program
{
    // A higher‑order function is a function that does at least one of the following:
    // 1. Takes another function as an argument
    // 2. Returns a function as its result
    // If it does either one, it qualifies.

    // Higher-order function: takes a function as an argument
    static int applyTwice(Func<int, int> fn, int x) {
        return fn(fn(x));
    }

    // A simple function to pass in
    static int add3(int n) {
        return n + 3;
    }

    static void Main()
    {
        // Use the higher-order function
        int result = applyTwice(add3, 5); // 5 + 3 = 8 + 3 = 11

        Console.WriteLine(result);
    }
}



/*
run:

11

*/

 



answered Jun 4 by avibootz
0 votes
using System;

class Program
{
    // A higher‑order function is a function that does at least one of the following:
    // 1. Takes another function as an argument
    // 2. Returns a function as its result
    // If it does either one, it qualifies.

    // makeMultiplier is a higher‑order function because it RETURNS another function
    static Func<int, int> makeMultiplier(int n) {
        // This inner function forms a closure and remembers the value of n
        return (int x) => x * n; // Uses the captured value n
    }

    static void Main()
    {
        // double is now a function created by makeMultiplier(2)
        // It remembers n = 2 through closure
        var doubleFn = makeMultiplier(2);

        // Calling doubleFn(10) multiplies 10 by the captured n (which is 2)
        Console.WriteLine(doubleFn(10));
    }
}



/*
run:

20

*/

 



answered Jun 4 by avibootz
...