How can I return a function side-effecting lexical closure1 in Scala?
For instance, I was looking at this code sample in Go:
Got it!! after some trial and error:
def fib() : () => Int = { var a = 0 var b = 1 return (()=>{ val t = a; a = b b = t + b b }) }
Testing:
val f = fib() println(f(),f(),f(),f()) 1 2 3 5 8