मैं primtive recursive फ़ंक्शंस का उपयोग करके हैकेल के भीतर एक मॉड्यूलस फ़ंक्शन बनाने की कोशिश कर रहा हूं। मुझे पता है कि यह संभव है (क्योंकि यह विकिपीडिया पर उदाहरण कार्यों की सूची पर है)हैकेल मॉड्यूलस आदिम रिकर्सन
और मुझे पता है कि मैं इसे तर्कसंगत तरीके से कैसे करूंगा .. लेकिन मैं इसे लागू नहीं कर सकता!
आईई, तर्क (नहीं primtive प्रत्यावर्तन या Haskell)
function mod(a, b){
while(a > b)
a -= b
return a;
}
कौन सा मैं प्रत्यावर्तन (फिर haskel नहीं)
function mod(a, b){
if(a < b) return a;
return mod(a - b, b);
}
लेकिन मैं लागू करने के लिए नहीं कर पा रहे का उपयोग कर परिभाषित कर सकते हैं है यह आदिम रिकर्सिव कार्यों का उपयोग कर रहा है। मैं जो मैं नहीं कर सकता एक < ख
मैं वास्तव में मेरे समस्या को हल करने मैं इस तरह के (फिर से नहीं haskel)
reduce(a, b)
= a >= b -> a-b
otherwise x
किसी को भी कर सकते थे, तो के रूप में परिभाषित तर्क के कुछ प्रकार की जरूरत है लगता है के तर्क है थोड़ा इस के किसी भी हिस्से के साथ मेरी मदद करें, मैं वास्तव में इसकी सराहना करता हूं, धन्यवाद
संपादित करें :: मैंने संभावित रूप से एक मॉड्यूलस फ़ंक्शन को विभाजित करने के उपयोग को परिभाषित करने का विचार किया, यानी मॉड (ए, बी) = ए - (ए/बी) * बी, लेकिन चूंकि विभाजन के लिए मेरे आदिम रिकर्सिव फ़ंक्शन मॉड्यूल पर निर्भर करता है, मैं इसे नहीं कर सकता हूं
'mod ab | एक <बी = ए | अन्यथा = mod (ए - बी) बी' - यह आपके सादे रिकर्सन का सरल हास्केल अनुवाद है। –
@DanBurton एक उपयोगकर्ता पहले से ही इसे पहले पोस्ट कर चुका है, लेकिन फिर उसने अपना संदेश हटा दिया क्योंकि यह आदिम पुनरावर्ती कार्यों के संदर्भ में वास्तव में प्रासंगिक नहीं है – AlanFoster