Result型

関数型プログラミングにおいて、Result型（）は、戻り値またはエラーコードを保持するモナディック型である。これは、例外処理に頼らないエラー処理の洗練された方法を提供する。失敗する可能性のある関数がResult型を返す場合、プログラマは結果にアクセスする前に、結果が成功であるか失敗であるかを確認することが強制される。これにより、プログラマがエラー処理を忘れる可能性が排除される。

例 
 Elmでは、標準ライブラリでとして定義されている。
 Haskellでは、慣例により、標準ライブラリでとして定義されている型がこの用途に使用される。
 Kotlinでは、標準ライブラリでとして定義されている。
 OCamlでは、標準ライブラリでとして定義されている。
 Rustでは、標準ライブラリでとして定義されている。
 Scalaでは、標準ライブラリで型が定義されているが、従来の例外処理によるエラー処理も提供している。
 Swiftでは、標準ライブラリでとして定義されている。
 C++では、標準ライブラリでとして定義されている。

Rust 
型にはis_ok()メソッドとis_err()メソッドがある。
const CAT_FOUND: bool = true;

fn main() {
    let result = pet_cat();
    if result.is_ok() {
        println!("Great, we could pet the cat!");
    } else {
        println!("Oh no, we couldn't pet the cat!");
    }
}

fn pet_cat() -> Result<(), String> {
    if CAT_FOUND {
        Ok(())
    } else {
        Err(String::from("the cat is nowhere to be found"))
    }
}

脚注

関連項目 
 Option型
 例外処理
 
 

関数型プログラミング