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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
梗概一下 Mivik/kamet 自我停止更新后增加特性的建模要点 #Kotlin #CS #CE #PLT == 参数化类型 类型形参 val name: String check, toSting Simple(name) data Trait(name, trait) check = type.implemented(trait) || (type is Type.Dynamic && type.trait == trait) data This(trait) : Trait("This", trait)…
Mivik 真的很厉害呢…… 不愧是 OI 生,知道那么多我不懂的东西 (汗)
之前写的 Android 文本编辑代码高亮视图也是太大佬了,我不敢想……

类型推导里的 makeEqual 也挺有趣的,这不就是 unification 里 unify 算法的基本做法吗:
sealed class Sym {
data class Var(val name: String): Sym()
data class Val(val value: Any?): Sym()
}
fun State.unify(a:Sym, b:Sym): Any? {
val va=get(a); val vb=get(b)
return when {
(a == b) -> a
(a is Sym.Var) b.also { assign(a, b) }
(b is Sym.Var) a.also { assign(b, a) }
else -> null
}
}

这里用 null 与否来判断是否成功,但总体和 makeEqual(typeParam, type) 是一样的
ps. Kotlin 的 scope function 真的绝赞

Mivik 其实并不是一个 Rust 狂魔,但他有能力把 Rust 与 Kotlin 结合在一起成为他自己的 Kamet ,这不是死知识或者单纯的抄袭,在前人的基础上他也做到了融合与扩展。
或许在 LLVM 的帮助下设计一个编译器并不困难,仅仅复刻一门语言写个蓝皮书也不困难,但从零开始设计并实现一门类似 C++ 的语言绝对不是个小工程;即便有 Kotlin 的帮助,也足以显现扎实的理论基础和工程水平。 把注意力全部放在功能拓展上,是和仅仅耍弄术语概念、刻意编写晦涩臃肿的代码、努力营造“专业软件”氛围的工程师完全不同的方向。 一点名词也不用却做到了它们代表的真实内涵,这才是「专业」所不能够理解的深刻。

即便作为普通的 OI 生,我相信他也是非常有能力的一个,以后在大学也绝对是能进入顶级计算机科学社的水平
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
编程时,命名使用不常见的英文单词应该被替换吗?例: onEncountered -> onHappend
duangsuse 除了泛向的 CLI/复用库设计 外可能没有什么专业,除了 codegen / bin+text serialize 俩好像也没啥了,不能后端也不能前端 GUI 也不太会... 太泛泛了

Kamet 里又出现了一次 Prototype 这个词, Lua 里这个词不止是 FunctionDecl 还是包含其实现 code 的,真不知道该不该有 prototype, 它的语义太混乱了

编程语言和自然语言是有区别的,我们是真的对严谨性有要求,而且不广为认知地,比数学更严谨。
所以我个人观点绝对是讨厌利用不常见的英文单词的,比如 lift, comprehension 等(往往这些词还有一大堆变形会被人混用)。
绝对不要以为你是在用英文编程就可以自由用英文的 trick 了,编程的世界只有结构关系逻辑,没有自然语言的理解,所以命名应该直白地反应其构件与其他构件间的关系,直白的东西自然是无歧义的。指望代码读者了解你心理的小九九很不明智。

说起来 Map<K, V>Map<K 的区别也挺奇怪的…… 词法处理的时候会遇到歧义问题,不知道不用词法处理会如何...
Forwarded from dnaugsuz
顺便: 发了点关于设计模式的文章
https://t.me/dsuse/14704

查了一下 interface Resolvable 只在
sealed class Function : Resolvable 里用了啊…… 而且 val resolved:Boolean 也没覆盖

开始还以为是要节省内存分配,把 Type.Named 给改成 var type:LType 的了呢,所以有 resolved ,这种做法也不用 lazy 🤔
Forwarded from Rachel 碎碎念 (IFTTT)
麻脑壳,Java / Kotlin 工程,尤其是要牵涉到 Gradle / Maven 的那种也太重了,要是能和 Python 一样脚本语言般轻量多好
学协程想写点什么测试,在 Android 工程里面搞实验是真的麻烦,让 VS Code 来启动一个新的具有 Gradle 支持的 Kotlin 工程…得了吧,我还不如乖乖开个新 Android 工程(— Rachel 呱 (@Rachel030219) August 24, 2020
Forwarded from Rachel 碎碎念 (IFTTT)
翻了翻以前自己的源码,感觉自己至少还是在进步
从原来「it works!」不求甚解,到现在每写一句都要思考「为什么这一句写在这里?」「这样修复 bug 原理是什么?」「我能不能更好地解耦?」
bug 还是多,引入的额外思考更让本不灵光的脑子偶尔迷迷糊糊,但至少我自己开始去问 why 了— Rachel 呱 (@Rachel030219) September 6, 2020
Forwarded from 层叠 - The Cascading
江苏省苏州市推出「文明码」,全国首创。

刚想说这《黑镜》在现实中的完美演绎竟是如此真实,却发现这其实不是大家第一次这么说了 [1]。

> I promise you we didn't sell the idea to the Chinese government!

src: https://mp.weixin.qq.com/s/xMYK1pmsqT94fWcEPbt5ww
alt-src: https://telegra.ph/%E5%81%A5%E5%BA%B7%E7%A0%81%E8%BF%98%E6%B2%A1%E8%B5%B0%E6%96%87%E6%98%8E%E7%A0%81%E5%8F%88%E6%9D%A5%E4%BA%86-09-04-3

1. 参见《黑镜》第三季第一集《急转直下》 ("Nosedive")。
#China #Low #haha #zhihu 虐猫狂人……
真是不知道怎么优化 Rust 式的卫生宏与 Scala 式的 Def Macro, 连 Java 的 annotation processor codegen 也觉得不够。
Forwarded from Product Hunt Hot
Parsify Desktop (Productivity, Open Source, Education, Text Editors)

Extendable calculator for the 21st century

产品官网🔗
在 Product Hunt 上的页面🔗
#ce #tool 有意思,不过看了 React 式的 declarative 和老式的 template, 我都不满意。命名前缀重复了
Forwarded from duangsuse Throws
#school #life 您的高职高专批文理类志愿于9月8日22:02填报成功。【湖北阳光招生】
duangsuse Throws
#school #life 您的高职高专批文理类志愿于9月8日22:02填报成功。【湖北阳光招生】
当然还是要改的。
自以为自己编程应用能力不错,其实也没有做到定义式表述式随意切换、异步索引区间DOM不求人的程度吧?(话说和这个有什么关系……这几天都不编程了,伤身体)
封装了一下就不报错了,太奇怪了