RRust By Example
intermediateFunctions

Higher-Order Functions

Functions that take or return other functions.

Higher-Order Functions

Functions that take or return other functions.

Difficulty

Intermediate

Code

rust
fn apply<F: Fn(i32) -> i32>(f: F, x: i32) -> i32 {
    f(x)
}

fn make_adder(n: i32) -> impl Fn(i32) -> i32 {
    move |x| x + n
}

fn main() {
    let double = |x| x * 2;
    println!("apply(double, 5) = {}", apply(double, 5));

    let add_10 = make_adder(10);
    println!("add_10(3) = {}", add_10(3));
}

Explanation

Functions that take or return other functions.

Key Concepts

  • Read the code carefully and understand the data flow
  • Try modifying the example to see how it changes behavior
  • Run this code in the Rust Playground

Related Topics

Browse more examples in the functions category to build a complete understanding of this topic.

More Functions Examples