infix fun Int.のあまりを求めることの(other: Int) = this % other
infix fun Int.に足すことの(other: Int) = this + other
infix fun Int.から至るに(other: Int) = this..other
infix fun Boolean.且つ(other: Boolean) = this && other
infix fun Boolean.又は(other: Boolean) = this || other
infix fun Any.が(other: Any) = this == other
val 零 = 0
val 一 = 1
val 三 = 3
val 五 = 5
val 百 = 100
tailrec infix fun IntRange.まで繰り返すことの(行為: (Int) -> Unit) {
    if (this.isEmpty()) return

    val 先 = this.first
    行為(先)
    (先 に足すことの 一) から至るに this.last まで繰り返すことの 行為
    
}
val Any.を印字する: Unit
	get () = println(this)

class 判定するにあたって(private val 真偽: Boolean) {
    infix fun ならば(行為: () -> Unit): 判定分岐 {
        if (真偽) 行為()
        return 判定分岐(!真偽)
    }
}
class 判定分岐(private val 続行: Boolean) {
    infix fun あるいは(条件: Boolean): 判定するにあたって {
        return 判定するにあたって(続行 且つ 条件)
    }

    infix fun いずれにも当てはまらなければ(行為: () -> Unit) {
        if (続行) 行為()
    }
}

fun main() {
    一 から至るに 百 まで繰り返すことの { 数 ->
    	判定するにあたって((数 のあまりを求めることの 五 が 零) 且つ (数 のあまりを求めることの 三 が 零)) ならば {
            "パイナツプル".を印字する
        } あるいは (数 のあまりを求めることの 三 が 零) ならば {
            "グリコ".を印字する
        } あるいは (数 のあまりを求めることの 五 が 零) ならば {
            "チヨコレイト".を印字する
        } いずれにも当てはまらなければ {
            数.を印字する
        }
    }
}

1

If you have a fediverse account, you can quote this note from your own instance. Search https://uneune.one/notes/a8ppg8spfp on your instance and quote it. (Note that quoting is not supported in Mastodon.)