यहां मेरी पुस्तक से कोड का एक स्निपेट है, और मुझे यकीन नहीं है कि मिलान कैसे काम करता है क्योंकि ऐसा लगता है कि पहला मामला सब कुछ मेल खाता है। यहां चेतावनियां हैं ओकम्ल मुझ पर फेंकता है:ओकैमल पैटर्न `शून्य -> शून्य` क्यों सबकुछ मेल खाता है?
# let zero = 0;;
# let one = 1;;
# let rec fib i =
match i with
zero -> zero
| one -> one
| j -> fib (j - 2) + fib (j - 1);;
Characters 57-60:
Warning: this match case is unused.
Characters 74-75:
Warning: this match case is unused.
| one -> one
^^^
| j -> fib (j - 2) + fib (j - 1);;
^
val fib : int -> int = <fun>
# fib 1;;
- : int = 1
# fib 2002;;
- : int = 2002
का एक परिणाम देता है बातें लिख सकते हैं द्वारा नजरअंदाज कर दिया जाता है, तो आप कुछ ऐसा करें जो x x = x zero' (सटीक वाक्यविन्यास मुझे बचता है) – hugomg
आप किसी मैच में अतिरिक्त परीक्षण जोड़ने के लिए 'कब' का उपयोग कर सकते हैं, लेकिन यह पैटर्न के अर्थ को नहीं बदलता है। यह केवल लागू होता है एक अतिरिक्त परीक्षण। यदि आपका पैटर्न सिर्फ एक पहचानकर्ता है, तो यह 'if' कथन लिखने का एक और तरीका है। (' if' कथन के साथ कुछ भी गलत नहीं है, यही वह नाम है जो आप शायद नामित स्थिरांक के खिलाफ परीक्षण करने के लिए उपयोग करेंगे।) –
धन्यवाद तुम जेफरी, मुझे यह सुंदर मिला व्यावहारिक। –