Scalaで整数型のリストの総和を再帰で求める方法について
Scalaで総数を返す再帰のコードでよく使われるのが、下記のような書き方です。
def sumList(list:List[Int]): Int = {
list match {
case Nil => 0
case x::list => x + sumList(list)
}
}
case Nilがマッチする為には引数のlistをtailするしかないことは理解出来ました。
が、 case x::list => x + sumList(list)を実行することでlistがtailされていくことがわかりません... ::演算子は左側の要素を右側のリストに連結するものなので、混乱しています。
なぜこの再帰呼び出しで引数のlistがtailされていくのでしょうか?