के अंदर गार्ड के साथ एक फ़ंक्शन को परिभाषित करना मैं अपने आप को हास्केल को पढ़ाने के लिए शुरू कर रहा हूं। इस कोड को प्रधानमंत्री गुणनखंड क्या करना चाहिए है:हास्केल - 'कहाँ'
divides :: Integer -> Integer -> Bool
divides small big = (big `mod` small == 0)
lowestDivisor :: Integer -> Integer
lowestDivisor n = lowestDivisorHelper 2 n
where lowestDivisorHelper m n
| (m `divides` n) = m -- these should belong to lowestDivisorHelper
| otherwise = lowestDivisorHelper (m+1) n
primeFactors :: Integer -> [Integer]
primeFactors 1 = []
primeFactors n
| n < 1 = error "Must be positive"
| otherwise = let m = lowestDivisor n
in m:primeFactors (n/m)
मैंने टिप्पणी की लाइन पर एक पार्स त्रुटि मिलता है। मुझे लगता है कि मेरी समस्या यह हो सकती है कि lowestDivisorHelper
में गार्ड हैं, लेकिन संकलक यह नहीं जानता कि गार्ड lowestDivisorHelper
या lowestDivisor
से संबंधित हैं या नहीं। मैं इसके आसपास कैसे पहुंचू?
संपादित करें: मुझे यह जोड़ना चाहिए कि मैं कार्यान्वयन विस्तार को छिपाने के लिए शीर्ष स्तर पर सहायक कार्य को परिभाषित नहीं करना चाहता था। फ़ाइल को आयात करना इसके साथ सहायक कार्य नहीं लेना चाहिए।
"फ़ाइल आयात करने से इसके साथ सहायक कार्य नहीं करना चाहिए।" इस मामले में, बस इसे निर्यात न करें। –