問題一覧に戻る
初級関数
問題27: 高階関数の基礎
高階関数は関数を引数として受け取る関数です。Rustではfn型を使って関数ポインタを表現します。関数を値として扱えるため、動的に処理を切り替えたり、共通の処理パターンを抽象化できます。これは関数型プログラミングの基本的な概念で、コードの再利用性と柔軟性を高めます。
// 関数ポインタ型
fn apply(f: fn(i32) -> i32, x: i32) -> i32 {
(x)
}
fn double(x: i32) -> i32 {
x * 2
}
fn triple(x: i32) -> i32 {
x * 3
}
fn main() {
// 関数を渡す
let result1 = apply(, 5);
println!("Double 5: {}", result1);
// 別の関数を渡す
let result2 = apply(, 5);
println!("Triple 5: {}", result2);
}