我真的服了我自己了,我居然把 Tuple 和 Fold 做成了 Kotlin 语言扩展级别的东西了……
emptyTuple<Int>() == emptyTuple<Int>()
tupleOf(1,2) != tupleOf(1)
"abc".asIterable().fold(asString()) == "abc"
"abc".asIterable().fold(asList()) == listOf('a', 'b', 'c')
listOf(1,2,3).fold(JoinFold(0, Int::plus)) == 6#KotlinEmmm operator fun not() = object: SatisfyTest<IN>() {
override val test = !this@SatisfyTest.test
}
原来这样的 object 的 label 是它的 父树 的 name……
override val test = !this@SatisfyTest.test
}
原来这样的 object 的 label 是它的 父树 的 name……
fun <IN> Feed<IN>.takeWhile(predicate: Predicate<IN>): Sequence<IN>
= sequence { while (true) yield(consumeIf(predicate) ?: break) }
fun <IN> Feed<IN>.take(n: Cnt): Sequence<IN>
= takeWhile { true }.take(n) 删了壮士断腕……
inputOf(1,2,3,10,2).asSequence().takeWhile { it < 10 }.asIterable().fold(JoinFold(0, {this*10+it}))#KotlinEmmm Parser.kt:333:76: error: 'toDashString' is a member and an extension at the same time. References to such elements are not allowed
override fun toString() = ranges.joinToString("", transform = CharRange::toDashString).surround("[" to "]")
override fun toString() = ranges.joinToString("", transform = CharRange::toDashString).surround("[" to "]")
var terminator = terminate.read(s)
while (terminator == notParsed) {
reducer.accept(item.read(s) ?: return notParsed)
terminator = terminate.read(s)
}
return Tuple2(reducer.finish(), terminator) Kotlin 牛逼啊,这么含糊的 nullability 都推导得出来?!
Parser.kt
18.4 KB
Parser.kt
20.2 KB
移除错误设计的 Until 之前的最后一个版本,我把 Until 的 terminator 也给存下来了……
Forwarded from 維基病夫自言自語頻道
吾乃天命之子,無懼肺炎也。愛滋病一年死七十七萬之眾,人無少戴套,少幹也。斯肺炎死僅數百人,何懼之?愛情不到吾也,無論肺炎!吾年四時從三樓之高墮地,無死無傷矣,無論肺炎!吾窮,無錢買口罩矣,惟聽天由命。還請各人莫再反駁吾之淺見也!
我是天命之子,不怕肺炎。愛滋病一年死七十七萬人,人們都沒有少戴套,少幹別人。這次肺炎死僅數百人,為什麼要害怕?愛情輪不到我,何況肺炎?我四歲的時候時從三樓之高墮地,絲毫無損,何況肺炎?我沒有錢買口罩,只能夠聽天由命。還請所有人不要再反駁我對這次肺炎的意見了!
我是天命之子,不怕肺炎。愛滋病一年死七十七萬人,人們都沒有少戴套,少幹別人。這次肺炎死僅數百人,為什麼要害怕?愛情輪不到我,何況肺炎?我四歲的時候時從三樓之高墮地,絲毫無損,何況肺炎?我沒有錢買口罩,只能夠聽天由命。還請所有人不要再反駁我對這次肺炎的意見了!