| // WITH_STDLIB | |
| // KJS_WITH_FULL_RUNTIME | |
| // FILE: 1.kt | |
| inline fun List<String?>.forEachNotNull(s: String, fn: (String, String) -> Unit) { | |
| for (x in this) { | |
| fn(s, x ?: continue) | |
| } | |
| } | |
| inline fun List<String?>.forEachUntilNull(s: String, fn: (String, String) -> Unit) { | |
| for (x in this) { | |
| fn(s, x ?: break) | |
| } | |
| } | |
| // FILE: 2.kt | |
| fun box(): String { | |
| var res = "" | |
| listOf("O", null, "K").forEachNotNull("|") { a, b -> | |
| res += a + b | |
| } | |
| if (res != "|O|K") return res | |
| res = "" | |
| listOf("O", null, "K").forEachUntilNull("|") { a, b -> | |
| res += a + b | |
| } | |
| if (res != "|O") return res | |
| return "OK" | |
| } |