OCaml में निर्माता के किसी भी प्रकार के अंदर मूल्य प्राप्त करने के लिए परंपरागत तरीके पैटर्न मिलान के साथ है। पैटर्न मिलान OCaml कि क्या आप पहले से ही अन्य भाषाओं में देखा है से सबसे अलग हो सकता है का हिस्सा है, तो मैं सुझाव है कि आप सिर्फ कार्यक्रमों जिस तरह से आप (उदाहरण के साथ समस्या यह है circumventing के लिए ocaml-lib करने के लिए उपयोग किया जाता है नहीं लिखते) लेकिन इसके बजाय इसे आजमाएं और देखें कि आपको यह पसंद है या नहीं।
let contents =
match z with
Some c -> c;;
चर contents
3
असाइन किया गया है, लेकिन आपको यह चेतावनी मिलती:
चेतावनी 8: इस पैटर्न मिलान संपूर्ण नहीं है। यहाँ एक मूल्य है कि मिलान नहीं किया है, इसके उदाहरण है: कोई नहीं
सामान्य स्थिति में, आपको पता नहीं होगा कि अभिव्यक्ति आप अंदर देखने के लिए चाहते हैं जरूरी Some c
है। विकल्प विकल्प का चयन करने का कारण आमतौर पर होता है कि कभी-कभी वह मान None
हो सकता है। यहां संकलक आपको याद दिला रहा है कि आप संभावित मामलों में से एक को संभालने में कामयाब नहीं हैं।
आप पैटर्न मैचों के लिए "गहन" कर सकते हैं और संकलक अभी भी exhaustivity के लिए जाँच करेगा।
let f x =
match x with
Some (Some c) -> c
| None -> 0
;;
आप मामले Some (None)
भूल गया और संकलक आप ऐसा कहता है यहाँ:
चेतावनी 8: इस पैटर्न मिलान संपूर्ण नहीं है इस समारोह है कि एक (int option) option
लेता है पर विचार करें। यहां एक मान का है जो मेल नहीं खाता है: कुछ कोई नहीं
स्रोत
2012-09-05 19:50:54
आप ओकैम के लिए एक वैकल्पिक उपयोगिता लाइब्रेरी ओकम्ल-लिब के लिए प्रलेखन को देख रहे हैं। निश्चित रूप से आपको 'कुछ' कन्स्ट्रक्टर के अंदर मूल्य तक पहुंचने के लिए उस लाइब्रेरी की आवश्यकता नहीं है। –