groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Theodorou <>
Subject Re: Swift's autoclosure in Groovy ?
Date Wed, 27 May 2015 14:39:51 GMT
Am 27.05.2015 15:16, schrieb Rhangaun .:
> Has someone given a thought about adding someting equivalent to Swift's
> autoclosure annotation in Groovy ?

as I see it you have

def foo(){1}
def bar(a,@autoclosure b){2}

bar(foo(), foo())

which will change the second foo call to lazy evaluation. The expansion 
in Groovy would then look similar to this:

bar(foo(),this.&foo()) // plus curry


bar(foo()) {foo()}

This can be done only in a static language, or in dynamic language that 
does all evaluation lazy by default. In other words, normal Groovy is 
not well suited for this.

And then there is of course the question of if I want this. In Groovy 
you would declare bar normally as

def bar(a, Closure b)

So to me it is more a way to avoid explicit writing of method closures...

Not sure about the gain from this.

bye blackdrag

Jochen "blackdrag" Theodorou

View raw message