एक पुनरावर्ती फ़ंक्शन में, पूंछ कॉल अनुकूलन के लिए परिणाम को चरण-दर-चरण तक ले जाने के लिए अक्सर प्रभावी होता है। उपयोगकर्ता को संकेत देने के लिए, कि उसे एक पैरामीटर प्रदान करने की आवश्यकता नहीं है, एक पैरामीटर को "परिणाम" नाम देना उचित हो सकता है:
def removeOccurence [A] (slice: Seq[A], original: Seq[A]) = {
@scala.annotation.tailrec
def remove (leftOriginal: Seq[A], result: Seq[A]) : Seq[A] =
trimStart (slice, leftOriginal) match {
case (h :: tail) => remove (tail, h +: result)
case (Nil) => result.reverse
}
remove (original, Nil)
}
लेकिन अधिक बार मैं 'कैरी' और 'सोफ़र' का उपयोग करता हूं, जिसे मैंने जंगली में देखा है, और जो ज्यादातर मामलों में विचार को थोड़ा बेहतर बना देता है।
एक दूसरा कारण निश्चित रूप से है, यदि आपका विषय 'परिणाम' शब्द का सुझाव देता है, उदाहरण के लिए यदि आप अंकगणितीय मूल्यांकन करते हैं। आप सूत्र को पार्स कर सकते हैं, चर को मानों से बदल सकते हैं, और अंत में एक परिणाम की गणना कर सकते हैं।
एक तीसरा कारण पहले ही कहा जा चुका है, लेकिन मेरे पास एक छोटा विचलन है: आप एक विधि लिखते हैं जो कुछ काम करता है, मान लें कि यह 'अधिकतम' के एक रूप का मूल्यांकन करता है।
def max = {
val result = somethingElseToDo
if (foo) result else default
}
परिणाम '' परिणाम '' को कॉल करने के बजाय, हम इसे '' अधिकतम '' कह सकते हैं, लेकिन कुछ भाषाओं में आप किसी विधि को कॉल करते समय कोष्ठक को छोड़ सकते हैं, इसलिए अधिकतम विधि के लिए एक पुनरावर्ती कॉल होगा।
सामान्य तौर पर, मैं एक नाम पसंद करूंगा जो बताता है कि परिणाम क्या है। लेकिन अगर वह नाम पहले से ही लिया गया है, हो सकता है कि एक से अधिक चर, जिम्मेदार या विधि हो, क्योंकि एक GUI- फ़ील्ड, एक स्ट्रिंग प्रतिनिधित्व, एक संख्यात्मक और एक डेटाबेस के लिए, एक दूसरे का उपयोग करके भ्रम की संभावना बढ़ जाती है। 3 से 7 लाइनों के छोटे तरीकों में, नाम के लिए '' परिणाम '' समस्या नहीं होनी चाहिए।
ofTheJedi
उस उद्देश्य के लिए भी इस्तेमाल किया है। सिफारिश नहीं, सिर्फ यह कहते हुए कि मैंने इसे देखा है।Zorglub ofTheJedi = //...; return ofTheJedi;