हास्केल फ़ंक्शंस में 'मान लेता है' कीवर्ड को समझना
हास्केल में `मान लेता है` कीवर्ड का उपयोग एक पूर्व शर्त या धारणा को निर्दिष्ट करने के लिए किया जाता है जो फ़ंक्शन को लागू करने के लिए सत्य होना चाहिए। दूसरे शब्दों में, यह एक शर्त निर्दिष्ट करता है जिसे फ़ंक्शन को कॉल करने से पहले आयोजित किया जाना चाहिए।
उदाहरण के लिए, निम्नलिखित फ़ंक्शन पर विचार करें:
```
f :: Int -> Int
f x = x + 1
```
यह फ़ंक्शन एक पूर्णांक लेता है `x` और उसका उत्तराधिकारी लौटाता है (यानी, `x + 1`)। हालाँकि, यदि `x` नकारात्मक है तो यह फ़ंक्शन लागू नहीं होता है, क्योंकि `x + 1` का परिणाम भी नकारात्मक होगा। इस धारणा को निर्दिष्ट करने के लिए, हम `धारणाओं` कीवर्ड का उपयोग कर सकते हैं:
```
f :: Int -> Int मानता है (x >= 0)
f x = x + 1
```
अब, फ़ंक्शन `f` केवल सकारात्मक पूर्णांक के साथ बुलाया जा सकता है, और यदि एक नकारात्मक पूर्णांक को तर्क के रूप में पारित किया जाता है, तो कंपाइलर एक त्रुटि उत्पन्न करेगा। इसी तरह, हम अन्य मान्यताओं या पूर्व शर्तों को निर्दिष्ट करने के लिए `मान लेता है` कीवर्ड का उपयोग कर सकते हैं जो किसी फ़ंक्शन को लागू करने के लिए सत्य होना चाहिए . उदाहरण के लिए:
```
g :: Int -> Int मानता है (सम x)
g x = x + 1
```
यह फ़ंक्शन एक पूर्णांक `x` लेता है और उसका उत्तराधिकारी लौटाता है, लेकिन केवल तभी जब `x` सम हो। यदि `x` विषम है, तो कंपाइलर एक त्रुटि उत्पन्न करेगा। संक्षेप में, हास्केल में `मान लेता है` कीवर्ड का उपयोग उन मान्यताओं या पूर्व शर्तों को निर्दिष्ट करने के लिए किया जाता है जो किसी फ़ंक्शन को लागू करने के लिए सत्य होना चाहिए। यह हमें उन इनपुट मानों पर बाधाओं को व्यक्त करने की अनुमति देता है जिन्हें कोई फ़ंक्शन स्वीकार कर सकता है, और त्रुटियों को रोकने और हमारे कोड की विश्वसनीयता में सुधार करने में मदद कर सकता है।