duangsuse::Echo
711 subscribers
4.24K photos
127 videos
583 files
6.44K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
#ce #Kotlin https://github.com/Mivik/kamet/ 的代码昨天下午重构了下,导览下大致结构: 依赖: com.bytedeco.llvm-platform, com.github.KiotLand:kiot-lexer Value, Type, TypeDescriptor, TypeCastManager, GenericValue, ValueRef, Attributes, Context, JITEngine, Parser, Lexer 辅助: exceptions…
嗯……我再想想 ParserKt 的 primitives
SDRies CDP PWOC SJITLL
Seq(tup,*es),Decide(*es),Repeat(fold,e)
item(x), elementIn(rng), satisfy(p)

Convert(p,equiv), Deferred(lazy_p), Piped(p,trans)
Pattern,PatternWrapper,OptionalPattern,ConstantPattern
SurroundBy(pair,e), JoinBy(join, e), InfixPattern(e), TriePattern/TrieBack/MapPattern/GreedyPattern, LayoutPattern(lay,e), LexicalScopedPattern(body)

Feed 现在除了 SourceLocated, FeedError 还要加一个 FeedControl { val isEnd; fun peekMany(n:Int):List } 了。
因为这样, PKT 才可以更好的兼容 /* 注释之类的而无需担心无法在 InfixPattern.read 之类的算法里很好的处理 skip 的问题 (一旦在'/'那consume了,就没法让 InfixPattern 再识别这个运算符了)
所以只需把 var lastItem 再加 val readBuffer ,在 peekMany 的时候加入、 consume 的时候先弹出 即可

template typename<T>
T* maxIndexOf(T* src, size_t n) {
T* max; for (T* i=src[0]; i<n; i++) if (src[i] > *max) max = &i;
return max - src;
}
T* maxIndexOf(T* src, size_t n) {
T* max;
for (int i=0; i<n; i++) if (src[i] > *max) max = &src[i];
return max - src;
}
哇真棒果然默写下来了…… 虽然没意义
草, #Kotlin 这不就是传说中的 Pair<Int,String> 不 Either<Int,String> 不 (forall a. a) -> a 类型吗,草不是 Rank N type 啊
Forwarded from Deleted Account
草,果然还是要收 Intersection type ,取超类啊……
换成 Interface?
fun test() {
login(object : Callable {
override fun <T> call(value: T): T {
return value
}
})
}

fun login(callable: Callable) {
callable.call("1")
callable.call(1)
}

interface Callable {
fun <T> call(value: T): T
}
fun main() { WTF(1)/*.a*/ }
class WTF(n: Int) {
init { print(1) }
val a = "emm"
}
Forwarded from Dennis Can
执行顺序问题,先执行构造函数赋值,再init块,然后才是a=5
Forwarded from Dennis Can
如果是抽象类的话,init块调用抽象字段会报空指针,注意踩坑
Forwarded from Haruue | 春上ひつき
只有这种是不正确并且会丢数据的用法
val os = FileOutputStream(...)
val bos = BufferedOutputStream(os)
bos.write(...)
os.close() // 应该要 bos.close();
如果你用 java 的 try with resource 或者 kotlin 的 .use , 这个问题可能会没那么明显并且显得迷惑。
Forwarded from Haruue | 春上ひつき
当然最好还是 val os = BufferedOutputStream(FileOutputStream(...)) 从根源解决这种问题, 并不是所有情况都能这样做(比如代码中需要使用到 fileOutputStream.getFD() )。
Mivik Q, [04.06.20 21:57][In reply to iseki 萍水相逢,相聚是缘]
SAM?

iseki 萍水相逢,相聚是缘
Single Abstract Method

以为是Suffix Automaton
后缀自动机(草
Forwarded from Catten Linger
Forwarded from Mivik Q
这种东西用infix不会有些语意混乱吗(个人意
Forwarded from Catten Linger
John Wonder, [28.06.20 21:36]
有人用arrow吗?有办法让Int和String去实现同一个interface吗?
比如创建一个typeclass IS,让Int和String成为IS的实例,然后任何声明类型为IS的地方都可以放Int或String,ad-hoc polymorphism
Forwarded from Mivik Q
Forwarded from Mivik Q
纯kotlin实现的正则引擎
Forwarded from Mivik Q
Forwarded from Catten Linger
Forwarded from STRRL
有没有写安卓的dalao 想问个问题:

Activity应该算是MVVM的View吧, 比如说我的主Activity中想展示一个Model 但是这个Model是从某个HTTP API中获取的 所以我需要在这个Activity展示之前 去获取这个数据

这个行为 应该写到Activity的生命周期钩子里呢?还是有其他什么办法去做管理呢= =/