मैं स्केलास्केला: एक सामान्य पुनरावर्ती अधिकतम समारोह
maximum' :: (Ord a) => [a] -> a
maximum' [] = error "maximum of empty list"
maximum' [x] = x
maximum' (x:xs) = max x (maximum' xs)
को बंदरगाह के लिए कोशिश कर रहा हूँ इस Haskell अधिकतम समारोह कार्यान्वयन को लागू यह मेरा पहला प्रयास है:
def max[T <: Ordered[T]](list: List[T]): T = list match {
case Nil => throw new Error("maximum of empty list")
case head :: Nil => head
case list => {
val maxTail = max(list.tail)
if (list.head > maxTail) list.head else maxTail
}
}
max(List[Int](3,4))
लेकिन मैं निम्नलिखित त्रुटि मिलती है :
inferred type arguments [Int] do not conform to method max's type parameter bounds [T <: Ordered[T]]
मैं आदेश, comprable, इसी तरह के परिणाम के साथ आदि के साथ की कोशिश की ...
012,क्या गुम है के बारे में कोई विचार?
+1 ...(मेरे पास अभी भी पर्याप्त साहस नहीं है ... स्रोत का उपयोग करें !!!) – opensas
मुझे लगता है कि ord.max का उपयोग करना धोखाधड़ी की तरह होगा, मैं इसे केवल शैक्षणिक उद्देश्यों के लिए कर रहा हूं ... वैसे भी, मैंने अधिकतम एलिमेंटमेंट हेल्पर बनाया वहां उस वैल से बचने के लिए कार्य करें ... – opensas
'ord.max' 'List.max' से अलग है। एक मूल रूप से एक ऑपरेटर है जो दो चीजों की तुलना करता है जबकि दूसरा एक संपूर्ण संग्रह की विधि है। वे सिर्फ वही नाम होने लगते हैं। – dhg