mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 00:21:26 +00:00
39 lines
668 B
Kotlin
Vendored
39 lines
668 B
Kotlin
Vendored
// FILE: 1.kt
|
|
|
|
package test
|
|
|
|
|
|
inline fun <T> simpleFun(arg: String = "O", lambda: (String) -> T): T {
|
|
return lambda(arg)
|
|
}
|
|
|
|
|
|
inline fun <T> simpleFunR(lambda: (String) -> T, arg: String = "O"): T {
|
|
return lambda(arg)
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun simple(): String {
|
|
val k = "K"
|
|
return simpleFun(lambda = {it + "O"}) + simpleFun("K", {k + it})
|
|
}
|
|
|
|
fun simpleR(): String {
|
|
val k = "K"
|
|
return simpleFunR({it + "O"}) + simpleFunR({k + it}, "K")
|
|
}
|
|
|
|
fun box(): String {
|
|
|
|
var result = simple()
|
|
if (result != "OOKK") return "fail1: ${result}"
|
|
|
|
result = simpleR()
|
|
if (result != "OOKK") return "fail2: ${result}"
|
|
|
|
return "OK"
|
|
}
|