रिजल्ट टाइप

कार्यात्मक प्रोग्रामिंग में, परिणाम एक मोनाडिक प्रकार होता है जिसमें इसका मान त्रुटि कोड होता है। जो असामान्यता हैंडलिंग का सहारा लिए बिना त्रुटियों का  विधारण करने की विधि  प्रदान करते हैं; जब कोई फ़ंक्शन विफल हो सकता है, परिणाम प्रकार का  पुनरावृत्ति करता है,  प्रोग्रामर को अपेक्षित परिणाम तक पहुंच प्राप्त करने से पूर्व, सफलता या विफलता मार्ग  पर विचार करने के लिए विवश  किया जाता है; यह  त्रुटिपूर्ण प्रोग्रामर धारणा की संभावना को समाप्त करता है।

उदाहरण

 * एल्म (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है Err e.
 * हास्केल (प्रोग्रामिंग भाषा) में, परिपाटी द्वारा Either इस उद्देश्य के लिए प्रकार का उपयोग किया जाता है, जिसे मानक पुस्तकालय द्वारा परिभाषित किया गया है Right b.
 * OCaml में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है Error of 'b type.
 * जंग (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है enum Result { Ok(T), Err(E) }.
 * स्काला (प्रोग्रामिंग भाषा) में, मानक पुस्तकालय भी एक को परिभाषित करता है Either प्रकार, हालांकि स्काला में अधिक पारंपरिक अपवाद प्रबंधन भी है।
 * स्विफ्ट (प्रोग्रामिंग भाषा) में, इसे मानक पुस्तकालय द्वारा परिभाषित किया गया है @frozen enum Result where Failure : Error.

जंग
परिणाम वस्तु में विधियाँ हैं  और. <वाक्यविन्यास प्रकाश लैंग = जंग> स्थिरांक CAT_FOUND: बूल = सच;

एफएन मुख्य { चलो परिणाम = pet_cat ; अगर परिणाम.is_ok { println! (बढ़िया, हम बिल्ली को पालतू बना सकते हैं!); } अन्य { println! (अरे नहीं, हम बिल्ली को पालतू नहीं बना सके!); } }

fn pet_cat -> परिणाम <, स्ट्रिंग> { अगर CAT_FOUND { ठीक है() } अन्य { एरर (स्ट्रिंग :: फ्रॉम (बिल्ली कहीं नहीं मिली)) } } 

यह भी देखें

 * विकल्प प्रकार
 * एक्सेप्शन हेंडलिंग
 * टैग की गई यूनियन
 * वापसी प्रकार