爲了解決「Scala for the Impatient」一書中的練習題,我有一個小問題。 (以下是我的解決方案)斯卡拉,用遞歸功能練習
1:編寫for循環來計算字符串中所有字母的Unicode代碼的乘積。例如,在「你好」的字符的產物是825152896
var p = 1; val S = "Hello"
for (i <- S) p*= i
println(p)
2:解決上述鍛鍊而無需編寫一個循環。 (提示:看String0ps Scaladoc。)
val St="Hello".map(_.toInt).product ; println(St)
3:寫功能產品(第:字符串),該計算的乘積,如在前述的練習說明。
def product(s: String)={
val S=s; println(S.map(_.toInt).product)
}
product("Hello")
讓前面的練習遞歸函數的功能。
??? I do not know how to do it
我希望有人能幫助我。 此致敬禮, 弗朗切斯科
遞歸函數是一個調用自身的函數,但在執行該操作之前會檢查終止條件以避免無限遞歸。要遞歸地計算一個產品,你需要在函數式語言中實現一個類似'fold'函數的函數,並且傳遞1作爲累加器的初始值和字符串。然後該函數將檢查字符串是否爲空,並用字符串的尾部和調整後的累加器調用它自己,如果不是。終止時,累加器的值就是結果。 – akonsu