ch
Size: a a a
ch
AN
AN
AN
AL
class A { fun B.foo() { } }
)AN
class A { fun B.foo() { } }
)P
P
class A { fun B.foo() { } }
)AN
AA
fun String.foo(): Double.() -> Int.() -> String = dbl@ { { "${this@foo} ${this@dbl} $this" } }
fun main() {
println("bar".foo().let { 2.0.it() }.let { 1.it() })
println("baz".foo()(3.2)(2))
}
AL
interface A //and some impl
interface B //and some impl
class Composite(val a: A, val b: B): A by a, B by b
fun A.withCompositeContext(B b, action: Composite.() -> Unit) = Composite(this, b).run(::action)
P
interface A //and some impl
interface B //and some impl
class Composite(val a: A, val b: B): A by a, B by b
fun A.withCompositeContext(B b, action: Composite.() -> Unit) = Composite(this, b).run(::action)
P
fun String.foo(): Double.() -> Int.() -> String = dbl@ { { "${this@foo} ${this@dbl} $this" } }
fun main() {
println("bar".foo().let { 2.0.it() }.let { 1.it() })
println("baz".foo()(3.2)(2))
}
AA
P
fun String.foo(): Double.() -> Int.() -> String = dbl@ { { "${this@foo} ${this@dbl} $this" } }
fun main() {
println("bar".foo().let { 2.0.it() }.let { 1.it() })
println("baz".foo()(3.2)(2))
}
AA
class A(val a: String)
class B(val b: String)
class C(val c: String)
fun A.abc(): B.() -> C.() -> String = { { "$a $b $c" } }
fun main() {
println(A("a").abc().let { B("b").it() }.let { C("c").it() })
println(C("c").(B("b").(A("a").abc())())())
println(A("a").abc()(B("b"))(C("c")))
}
AA
A("a").abc()
- вполне корректное выражение, как и A("a").abc()(B("b"))
QH
AA
fun <A, B, C> ((A) -> (B) -> C).uncurry(): (A, B) -> C = { a, b -> this(a)(b) }
AA