On Fri, Jul 27, 2012 at 8:32 AM, Ricky Clarkson
<[email protected]> wrote:
> 1 to 10 map { println("Yo"); println }
>
> Yo gets printed once, println happens 10 times.  Just because you're
> providing a function doesn't mean you're in a closure.  If it was a closure
> (and certain other magic happened to make it well-typed) you'd see Yo 10
> times with a blank line between each.

I'm lost.  A closure simply means it captures the local environment, right?  So:

var y = 0
1 to 10 map {y+= 1; println}
println(y)

Now, I confess I am surprised that it appears this closure is called
once to get a function from Int => Any.  I'm assuming it has always
been this way in Scala?

Of course, this does as expected, and looks similar.

for (x <- 1 to 10) {y+=1; println("hello")}

Is this is not a closure, as well?

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to