/tmp/duangsuse.sock
23 subscribers
303 photos
3 videos
92 files
337 links
从 duangsuse::Echo (@dsuse) 跟进出来的分支,将在作者恢复原帐号访问的时候合并删除。
Download Telegram
我真的服了我自己了,我居然把 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……
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}))
Parser.kt
13.6 KB
好像 Tuple, Fold, Input 都成了 Kotlin 标准库的扩展……
#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 "]")
Parser.kt
13.8 KB
完成了 IES(item, elementIn, satisfy)
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
#Kotlin #code 添加了一个 stay。 val sign = elementIn('+', '-').toDefault('+')
val digit = Convert(elementIn('0'..'9'), {it-'0'}, {'0'+it})
fun asInt(radix: Int) = JoinFold(0, {this*radix+it})
val numPart = Until(asInt(10), !digit, digit)
Parser.kt
20.2 KB
移除错误设计的 Until 之前的最后一个版本,我把 Until 的 terminator 也给存下来了……
This media is not supported in your browser
VIEW IN TELEGRAM
/tmp/duangsuse.sock
😂 Sticker
#China #freedom 总算在 CloudHammer 的 SS 里找到一个可以用的了……
可能是最近的瘟疫,外网又被严重限速,Outlook 都上不上去
还是我靠手机上 SSR 应用测速出来的,呜呜呜,我都快被防火墙给气疯了……
#Kotlin 第一次采用这样的…… 🌚 不知道是好是坏