के लिए Idiomatic Scala समाधान 'idiomatic' स्कैला में इस फ़ंक्शन को व्यक्त करने के लिए कुछ विचार क्या हैं। या अधिक सटीक, क्या पठनीयता को बलि किए बिना स्थानीय युद्धों को हटाने का कोई तरीका है?अनिवार्य कोड
def solve(threshold: Int)(f: Int => Int): Int = {
var sum = 0
var curr = 0
while(sum < threshold) {
sum += f(curr)
curr += 1
}
curr
}
एकमात्र चीज जिसके साथ मैं आ सकता था, लेकिन यह मेरी राय में लंबा और कम पठनीय था।
def solve2(threshold: Int)(f: Int => Int): Int = {
val resultIterator = Iterator.iterate (0, 0) { case (curr, sum) =>
(curr + 1, sum + f(curr))
}
(resultIterator find (_._2 >= threshold)).get._1
}
यह जो एक _correct_ बनाने के लिए के बाद से सभी इतना अच्छा मैं एक है कि करने के लिए सबसे सहज लग रहा था उठाया थे तय करने के लिए मुश्किल था मुझे –
@ डैन बर्टन के समाधान ने मुझे टूलबॉक्स के लिए सबसे नई युक्तियां दीं। –