हाल ही में मैं कोडओकैमल - एक असुरक्षित प्रकार क्या है? > पूर्णांक है, और वास्तव में यह एक चेतावनी पैदावार आश्चर्य की बात नहीं है -
List.fold_left (fun acc x -> raise x ; acc) 3
मैं इस आंशिक आवेदन की एक कार्यात्मक मूल्य होने> प्रकार exn सूची के साथ पूरी तरह से ठीक हूँ दिया गया था । मैं कर रहा हूँ,> हालांकि, कुछ नहीं चेतावनी का क्या आधा मतलब है:
Warning 21: this statement never returns (or has an unsound type.)
मैं वास्तव में इस चेतावनी के लिए किसी भी संदर्भ नहीं मिल सकता है, जहां यह एक गैर लौटने बयान का परिणाम नहीं है। यहां तक कि ओकैमसीसी के लिए मैन पेज केवल इस चेतावनी के लिए गैर-वापसी वाले बयान का उल्लेख करता है, और चेतावनियां। एमएल इसे केवल nonreturning_statement के रूप में संदर्भित करता है।
मैं ध्वनि की अवधारणा से परिचित हूं क्योंकि यह टाइप सिस्टम से संबंधित है, लेकिन एक प्रकार का विचार जो स्वाभाविक रूप से अस्वस्थ है, वह मेरे लिए अजीब लगता है।
तो मेरी प्रश्न हैं:
वास्तव में क्या एक अस्वस्थ प्रकार है? एक ऐसी स्थिति क्या है जिसमें एक असाधारण प्रकार उत्पन्न होगा जब ओकैमल केवल कठोर असफल होने की बजाय चेतावनी जारी करेगा?
किसी ने इस प्रश्न को पोस्ट किया है, और जब मैं एक उत्तर लिख रहा था, तो इसे हटा दिया गया था। मेरा मानना है कि प्रश्न बहुत रोचक और reposting के लायक है। आप कोई है जो आपकी मदद करने के :-(
मुझे विश्वास है कि प्रश्न हटा दिया गया था क्योंकि यह http://stackoverflow.com/questions/31278561/avoid-the-warning-warning-21-this-statement-never-returns-or-has-an का डुप्लिकेट था -unsउंड-टी, जहां चेतावनी बाहरी (js_of_ocaml) फ़ंक्शन के उपयोग के कारण अनजान परिणाम प्रकार के साथ हुई थी - जैसा कि नीचे दिए गए आपके उत्तर में है। मुझे संदेह है कि प्रश्नकर्ता वह है जिसने मुझे स्वीकार्य उत्तर पर +1 दिया है। अनुमोदित, फोकस थोड़ा अलग है। – antron
मैं वह व्यक्ति था जिसने उससे पूछा/हटा दिया; मैंने केवल यह देखा (हेहे)। क्या @antron ने कहा ठीक है क्यों मैंने इसे हटा दिया। और हाँ, वह +1 मुझसे था। ;) – Will