У меня есть это действительно простое определение метода с вложенной рекурсивной функцией:
def bar(arr : Array[Int]) : Int = {
val foo : Int => Int = (i: Int) => if(i == 0) 0 else i + foo(i-1)
foo(3)
}
Но я получаю эту ошибку:
<console>:36: error: forward reference extends over definition of value foo
val foo : Int => Int = (i: Int) => if(i == 0) 0 else i + foo(i-1)
^
Если я просто поставлю строку val foo: ... = ... саму по себе, а не вложенную в определение, все будет работать