मैं कार्यात्मक प्रोग्रामिंग के लिए अपना परिचय पूरा करने के लिए कल एक परीक्षण के लिए प्रशिक्षण दे रहा हूं लेकिन एक बात है जिसे मैं समझ नहीं पा रहा हूं।हास्केल: गैर-संपूर्ण पैटर्न
जब भी मैं की तरह एक कार्यक्रम है:
test [] = []
test (x:xs) = test (xs)
क्या वह करता है कि वह सूची से बाहर पहला तत्व लेता है और बाकी के साथ जारी है। जब भी कोई बाएं होता है, xs
[]
होना चाहिए जो बदले में test [] = []
को ट्रिगर करना चाहिए। लेकिन जब भी मैं इस एल्गोरिदम को चलाता हूं तो मुझे एक त्रुटि मिलती है। Exception: <interactive>:20:5-16: Non-exhaustive patterns in function test.
मुझे ऑनलाइन स्पष्ट स्पष्टीकरण नहीं मिला। क्या कोई मुझे एक लिंक भेज सकता है जहां इसे स्पष्ट रूप से समझाया गया हो या मुझे समझाया जाए?
अजीब। आपके द्वारा पोस्ट किए गए कोड स्निपेट में गैर-संपूर्ण पैटर्न नहीं हैं। – pyon
बस अंधेरे में शूटिंग: क्या आप शायद इस परिभाषा को ghci में दर्ज करने की कोशिश कर रहे हैं? यदि ऐसा है, तो आपको एक ही बयान कथन का उपयोग करना चाहिए: 'परीक्षण करें [] = []; परीक्षण (एक्स: एक्सएस) = परीक्षण xs'। – pyon
हां, यही वह है जो मैं कर रहा हूं। बहुत बहुत धन्यवाद। मैंने पहले से ही बाहर निकलना शुरू कर दिया क्योंकि मैंने इस पूरे सप्ताह प्रोग्रामिंग रिकर्सन बिताए और मुझे पता नहीं चला कि यह क्यों काम नहीं करेगा। –