Попробуйте:
val r = List(1,2,3,4,3,3,3,3,3,3,4,4,5)
def newCount(e: Int, list: List[Int]) = {
list.foldLeft(0)((sum: Int, b: Int) =>{
if(b==e)
sum+1
else sum
}
)
}
println(newCount(3, r)) // 7
, поэтому проблема с вашим кодом заключается в том, что вы используете foldLeft, а второй параметр вашей анонимной функции не указан. Следовательно, вы получаете отсутствующий параметр типа для функции, которую вы определили.
В своем коде вы пытаетесь использовать сумму в качестве накопителя, поэтому вам не нужно писать sum = sum + 1
, вы можете просто написать sum + 1
но самое главное, вы не используете правильный левый сгиб.
подпись для foldLeft взята из документации здесь
def foldLeft[B](z: B)(op: (B, A) => B): B
где z - начальное значение и функция op, которая работает (аккумулятор типа B, A переменная типа A) и возврат B.