Как вернуть функцию в scala

Как я могу вернуть в Scala функцию , вызывающую побочное действие лексическое замыкание 1 ?

Например, я смотрел этот пример кода в Go :

...    
// fib returns a function that returns
// successive Fibonacci numbers.
func fib() func() int {
    a, b := 0, 1
    return func() int {
        a, b = b, a+b
        return b
    }
}
...
println(f(), f(), f(), f(), f())

печатает 1 2 3 5 8

И я не могу понять, как написать то же самое на Scala.

1. Исправлено после комментария Apocalisp

17
задан Community 23 May 2017 в 11:54
поделиться