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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
开始下载驱动了……
#Python #CS #life 🌚 居然是 Python 的梗…… 也难怪,毕竟工程一点的语言也只有 Python 是带布局的
Forwarded from dnaugsuz
a=1; c=1; { a=b; b=c; c=a+b; } ?
Forwarded from dnaugsuz
我想到一个有趣的问题:
传说有一个神奇的小镇里有 10 位哲学家,有一天他们在一起聚餐,讨论抽象的哲学问题(比如现在这个)

现在,他们都坐在一个圆形的餐桌旁。
他们每个人都会等待一段时间,饿了就拿起(左手的叉子和右手的叉子)开始吃意面。

这些哲学家都比较死脑筋,如果叉子已经被占用则会死等到占用者吃完。

请描述一下他们最后大概有几种不同的结局。
如果你想清楚了,再想想有 11 个、9 个哲学家就餐时会怎么样。
Forwarded from dnaugsuz
不,这是个顺序算法,不是关系式子
Forwarded from dnaugsuz
比较困难,想不出也别自闭
呃…… 还有个条件:10 个人,可只有座位中间有叉子,换句话说 10 人只有 (10-1) 个叉子,不是一人一副。
Forwarded from dnaugsuz
ES6 的 Promise 很优雅,有 Promise.all 和 Promise.race,Vertx 也一样有 CompositeFuture
dnaugsuz
a=1; c=1; { a=b; b=c; c=a+b; } ?
稍微有点常识的人会想想为什么开始 b=1; a=1 而不是 a=1; b=1
不怕死的人会试着推理一下 loop count=n 时 c 是由何种表达式构成的
假设 (+) 是 "call-by-name" (传 sub expression)的话
https://play.kotlinlang.org/hands-on/The%20State%20of%20Kotlin%20JS/04_Using_APIs

with (canvasCtx) {
beginPath();
fillStyle(randomColor.sample())
rect(randAxis(), randAxis(), 20.0, 20.0); fill();
closePath();
}

fun randAxis() = Random.nextDouble(0, 20.0)


我们可以那么画许多方块,这个其实也可以提出绘制逻辑的。
只是 Kotlin 的例子,所以没抽提。
My answer.
duangsuse::Echo
在更新自家 Fedora OS installation 的时候顺便说一下。 之前的模型是一个 Literate 对 N 个 language-kotlin 的代码块,然后显示代码的时候拼起来创建 <code> tag 交给 KotlinPlayground 做后续工作。 现在可以一个 Literate 对 N 个靠“可配置”的 Map<LanguageId, [ElementConfig, Consumer<Element>]> 来(之前那个 ElementConfg 是 DOM ElementAttribute…
我最后没有用 function hist<K, V>(iter: Iterable<V>, key: (V) => K): Map<K, V> {
let histogram = new Map();
for (let item of iter) {
let k = key(item);
if (!histogram.has(k)) histogram.set(k, []);
histogram.get(k).add(item);
}
return histogram;
}

fun <K, V> histogram(iter: Iterable<V>, key: (V) -> K): Make<K, List<V>> {
val histogram: MutableMap<K, MutableList<V>> = mutableMapOf()
for (item in iter) { histogram.getOrPut(key(item), ::mutableListOf).add(item) }
return histogram
}
fun <K, V> histogram(iter: Iterable<V>, key: (V) -> K): Make<K, List<V>> {
val histogram: MutableMap<K, MutableList<V>> = mutableMapOf()
for (item in iter) {
val k = key(item)
val self = if (k in histogram) histogram[k] else { histogram[k] = mutableListOf(); histogram[k] }
self.add(item)
}
return histogram
}
就是在 filterCode 的流程中,加一个 language: string 的依赖
代码质量提升警告:开始使用 extension function 抽提逻辑
#Ruby 实在是太过分了……
只能富贵险中求,勉强 push 上去了,对自己的代码要有自信啊!
Ruby gem 下载速度好慢……
dnf system-upgread 完了 ruby 也要 gem update,真麻烦
何须长富贵,安乐是神仙。
Works pretty. 🐔
enableCodeFilter 给加了个 [ElementConfig, Consumer<Element>] 数据依赖,filterCode 加了个 language 可配置项默认 kotlin。

逻辑和修改缘由、作用范围、数据关系修改很清晰,可是也无法特别详细地在 changelog 里写出来