ओकैमल में, अगर मुझे कई का उपयोग करके एक फ़ंक्शन लिखना है, तो बाकी, नीचे मेरा बेवकूफ और बदसूरत समाधान है।ओसीएमएल में कोड के बाद बहुत बहुस्तरीय नेस्टेड लिखें?
let foo() =
let a1 = ... in
if (a1) then
result1
else
let a2 = ... in
if (a2) then
result2
else
let a3 = ... in
if (a3) then
result3
else
let a4 = ... in
if (a4) then
result4
else
result5.
ऊपर दिए गए कोड को कैसे सुशोभित करें? मुझे सी/सी ++ & जावा शैली पसंद है जो अगली if-statement के इंडेंटेशन को सहेजने के लिए "वापसी" का उपयोग करती है। क्या मैं ओकैमल के साथ एक ही काम कर सकता हूं?
int foo() = {
bool a1 = ...;
if (a1)
return result1;
bool a2 = ...;
if (a2)
return result2;
bool a3 = ...;
if (a3)
return result3;
bool a4 = ...;
if (a4)
return result4;
return result5;
}
OCaml एक 'return' बयान नहीं है:' if' शायद जाने के लिए रास्ता है। यदि आप बेताब हो जाते हैं तो आप चीजों को किसी अन्य कार्य में विभाजित कर सकते हैं। – gsg
सीढ़ी में अपना पहला उदाहरण इंडेंट करने का कोई कारण नहीं है। कई संपादक इसे लंबवत रूप से इंडेंट करेंगे –
ओकैम में कुछ मोनैड लाइब्रेरी कुछ 'रिटर्न' फ़ंक्शन को परिभाषित करते हैं –