How to pass a runnable procedure (a function) as a parameter and run it in Rust

3 Answers

0 votes
fn execute_function(f: fn(i32) -> i32, value: i32) {
    let result = f(value);
    println!("Result: {}", result);
}

fn square(x: i32) -> i32 {
    x * x
}

fn main() {
    execute_function(square, 5); // Pass the `square` function as a parameter
}

 
  
/*
run:
  
Result: 25
  
*/

 



answered May 22, 2025 by avibootz
0 votes
fn execute_closure<F>(f: F, value: i32)
where
    F: Fn(i32) -> i32,
{
    let result = f(value);
    println!("Result: {}", result);
}
 
fn main() {
    let doublex = |x: i32| x * 2; // Define a closure
    execute_closure(doublex, 17); // Pass the closure as a parameter
}
 
  
   
/*
run:
   
Result: 34
   
*/

 



answered May 22, 2025 by avibootz
0 votes
use std::thread;

fn main() {
    let add = |x: i32| x + 80; // Define a closure

    let handle = thread::spawn(move || {
        let result = add(7); // Run the closure
        println!("Result in thread: {}", result);
    });

    handle.join().unwrap(); // Wait for the thread to finish
}

 
  
/*
run:
  
Result in thread: 87
  
*/

 



answered May 22, 2025 by avibootz
...