Scala を使用した「関数型プログラミング」の探索を開始しました。関数型プログラミングで値を返す方法を知りたいです。再帰関数を書きました
def calculateSum(mainlist: List[Int]): Int = {
def Sum(curentElem:Int = 0,thislist:List[Int],): Int = {
if (list.isEmpty) curentElem
else loop(curentElem + thislist.head, thislist.tail)
//curentElem
}
Sum((List(0,1,2,3,4)))
println ("returned from Sum : " + curentElem)
}
- 関数の最後の行に「curentElem」を追加する必要があります(コメント行で行っているように)!
更新:問題を解決しました:
object HelloScala {
def main(args: Array[String]): Unit = {
val s = sum(0, List(0,1,2,3,4))
println("returned from Sum : " + s )
}
def sum(currentElem: Int, thislist: List[Int]): Int = {
thislist match {
case Nil => currentElem
case head :: tail => sum(currentElem + head, tail)
}
}
}