में फ़ंक्शन के प्रकार का निर्धारण करना निम्नलिखित समीकरण मिरांडा सिंटेक्स में लिखे गए हैं, लेकिन मिरांडा और हास्केल के बीच समानता के कारण मुझे उम्मीद है कि हास्केल प्रोग्रामर को इसे समझना चाहिए!कार्यात्मक प्रोग्रामिंग
आप निम्नलिखित कार्यों को परिभाषित हैं:
rc v g i = g (v:i)
rn x = x
rh g = hd (g [])
f [] y = y
f (x:xs) y = f xs (rc x y)
g [] y = y
g (x:xs) y = g xs (x:y)
तुम कैसे बाहर काम करता है के प्रकार के काम करते हैं? मुझे लगता है कि मैं समझता हूं कि एफ, जी और आरएन के लिए इसे कैसे काम करना है, लेकिन मैं आंशिक आवेदन भाग के बारे में उलझन में हूं।
आर.एन. होने जा रहा है * -> * (या कुछ भी -> कुछ भी, मुझे लगता है कि यह एक है -? हास्केल में> एक )
F और G के लिए, समारोह प्रकार दोनों हैं [*] -> * -> *?
मुझे यकीन है कि आरसी और rh के प्रकारों को खोजने के तरीके को कैसे सुनिश्चित किया जाए। आरसी में, जी को आंशिक रूप से परिवर्तनीय I पर लागू किया जा रहा है - इसलिए मुझे लगता है कि यह मुझे प्रकार के प्रकार को बाधित करता है [*]। आरसी और जी आरसी की परिभाषा में क्या आदेश लागू हैं? क्या जी ने मुझे लागू किया है, और फिर परिणामस्वरूप फ़ंक्शन आरसी के लिए तर्क के रूप में उपयोग किया जाता है? या आरसी, वी और जी के 3 अलग-अलग पैरामीटर लेता है? मैं वास्तव में उलझन में हूँ .. किसी भी मदद की सराहना की जाएगी! धन्यवाद दोस्तों।
hd :: [*] -> *
hd (a:x) = a
hd [] = error "hd []"
क्या यह होमवर्क है? –
नहीं, मैं अभी परीक्षाओं की तैयारी कर रहा हूं और यह मिरांडा परीक्षा के लिए एक पुराना परीक्षा प्रश्न है। – user1058210
'hd' फ़ंक्शन का प्रकार क्या है? –