fn division<F: Fn(f32) -> bool>(x: f32, y: f32, f: F) {
if f(y) == true {
println!("The division result is {}", x / y);
} else {
println!("The division is not possible");
}
}
fn main() {
let x = 5;
let square = |num: i32| println!("The square of the variable is {}", num * num);
square(x);
let y = 15;
square(y);
let division_status = |y: f32| {
if y != 0.0 {
true
} else {
false
}
};
division(40.0, 20.9, division_status);
let (my_name, my_age) = (String::from("Otieno"), 39);
prints_full_info(prints_name, &my_name, my_age);
}
fn prints_name(name: &str) {
println!("The name is {}", name);
}
fn prints_full_info(f: fn(&str), some_one: &str, age: i32) {
f(some_one);
println!(" and my age is {}", age);
}