こんにちは、私は C# から来た Scala にかなり慣れていません。
私は独自のバージョンのアキュムレート(フォールド)を作成しようとしていますが、なぜ次のような問題が発生しているのか疑問に思っています。
def accumulate[T](list : List[T], initial: T, f: (T, T) => T) : T = {
@tailrec def loop[T](list: List[T], accum: T) : T =
if(list.length == 0)
accum
else{
val head : T = list.head
val res : T = f(accum,head)
loop[T](list.tail, res)
}
loop(list,initial)
}
次のエラーが表示されます。
type mismatch;
found : accum.type (with underlying type T)
required: T
val res : T = f(accum,head)
^
すべてが型 T であることを考えると、どのように型の不一致があるのか わかりません。
どんな考え/助けもいただければ幸いです。
ブレア