Groovy Closures - Formal Definition " ".
Groovy , . , Closure, . , :
class SomeCollection {
public void each ( Closure c )
}
each() :
SomeCollection stuff = new SomeCollection();
stuff.each() { println it }
, , Groovy , :
SomeCollection stuff = new SomeCollection();
stuff.each { println it }
stuff.each ( { println it } )
, . , Closure :
class SomeCollection {
public void inject ( x, Closure c )
}
stuff.inject( 0 ) { count, item -> count + item }
stuff.inject( 0, { count, item -> count + item } )
"Groovy", , , Scala, "" currying :
scala> def fun[A, B](a: A)(b: B) = {true}
fun: [A, B](a: A)(b: B)Boolean
scala> fun(1){2}
res59: Boolean = true