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
Forwarded from dnaugsuz
有的代码写一行省十行,有的代码所遵循的模式,写了第一行后维护和重读重理解的麻烦不断;即便功能相同,不同的人写出来质量是完全不一样的。
所以我一贯很乐意学习编程之道,可能你觉得我字多些,对真的要学这些内容的人来说,这是我第五次讲相同话题,已经很省字数了。

便宜的就是最贵的,不想付出但想多得回报,很难不为这种心态再付出更大的代价。浪费与节省,大概是这个道理。
Forwarded from dnaugsuz
一般对解释(interpret)、编译(compile) 这些的理解是
解析(String到语法树 数据结构)->预处理(脱糖什么的)->类型检查(type check)-> 执行(execute)-解释/代码生成(codegen)-编译

这样吧,没有解释器去编译一说, Java 虚拟机的确不认 T 这些参数,只是 Object 化了而已,字节码只存反射用元数据。
#algorithm (感觉自己转发的可能有点奇怪了 🤔)
#cplusplus
std::vector<bitset<N>> rec;
int gcd(int x, int y); void dfs(int o=0, int lst=0);


不过代码质量真的可以🍎(注: name shadowing 有点不好,我习惯的是同层次相关可以同名...),反观引的等价算法1千行就……
gcd(x,y) { while (x %= y/*x取商 若有余数*/) std::swap(x, y); return y; } 这个求公约写法够简洁了 🌝
尾调用版亦可写 gcd(x,y) = if (x%y==0) y else gcd(y, x/y)
Forwarded from mivik::channels::tech
#gist #string #combinatorics_of_strings #project
计算所有长度为 n 的字符串的自相关位向量(Autocorrelation)
https://gist.github.com/Mivik/6e0459afe6691bce2659e1eaa5141390
没有注释的话只有短短 60 行,并且没有刻意压行,比 某些人 写的 1000 多行版本好多了(写那个的貌似是个学院派,代码里充斥着完全没法编译的怪异头文件以及鬼畜的码风...)
灵感来自于 这篇论文
duangsuse::Echo
作为开发者,你对「学院派」持什么态度?
#zhihu #plt #china 🤔别看了
[王垠,请别再欺负我们读书少 - 开发者头条](https://toutiao.io/posts/33acp5/preview)
[PLT零基础的人,要看懂王垠和彭飞在《王垠,请别再欺负我们读书少》里讨论的内容,需要掌握哪些知识? - 知乎](https://www.zhihu.com/question/42315543)
[如何评价王垠的新文章《回应CFA传人对我的攻击》? - 知乎](https://www.zhihu.com/question/42333233)
duangsuse::Echo
#Python #code 妈耶,看来还是 lambda op_append: 的方法好,虽然带副作用。 总结:新写法省了 gavSplit 和 from itertools import chain ,多了 3*lambda ,优雅性持平。
新写法加了仨 trivial(可省) def ,总觉得不该以行数为全部的... 总行数18 -3 -1(proj 的 for in) = 14 ,最小了吗 🤪

可这个程序以 a:b:c org.h:a,-w,--w1:1.0 示例输入生成了 35 行输出, 14/35==0.4
duangsuse::Echo
https://github.com/CASC-Lang/CASC 我会一如往常在频道里进行项目结构分析,然后用与 C# 相对的 Java (竟然不是 Kotlin... )进行一些并行的重写工作。 之所以用 #Java 写这样富于技巧的 #CE 编译器 程序,是因为我想常常新口味了…… 一些原来 Kotlin 里有的我也用 TypeScript 重写过 原项目是一个“能编译繁简体中文、甚至英语”的编译器,目标是对简体程序员可用。 ChAoS_UnItY (Chaos Unity) 开发,由 C# minisk…
md.py
594 B
#Python #code 😭 暂时没有找到 Markdown export 的 bot ,就只好基于 @ShowUpdateJsonBot 这个全文 BotUpdate Event JSON dump 机器人,转换下 span
参见依云大佬的 snippet (不对... 这个还带 line_number 的)
def applySpans(d, op, coding="utf-8"):
bs = d["text"]; i0 = 0
addSpan = lambda e: (e["offset"], e["length"], e)
for (i, n, e) in map(addSpan, d["entities"]):
iStop = i+n
yield bs[i0:i]
yield op(e["type"], e.get("url"), bs[i:iStop])
i0 = iStop
def mdify(type, data, text, fmts={"text_link": "[{0}]({1})","hashtag":"{0}"}):
return fmts[type].format(text, data)

这个 range 可以表示成 (pos+length) (iBeg,iEnd) (iBeg,iStop) 很多种方法,其实还是第一种最常见
#Python #tools #Telegram 这下就有经验了,不会倒大霉
def join(op): return lambda *args: "".join(op(*args))
@join
def applySpans(d, op, kP="offset", kN="length"):
s = d["text"]; i0 = 0
span = lambda e: (e[kP], e[kP]+e[kN], e)
for (iBeg, iStop, e) in map(span, d["entities"]):
yield s[i0:iBeg]; yield op(e["type"], e.get("url"), s[iBeg:iStop])
i0 = iStop
def transTable(deft="{0}", **d): return lambda tag, data, text: (d.get(tag) or deft).format(text, data)
from json import loads; from sys import stdin
def readJson(): s=stdin.read(); return loads(s[s.index('{'):])
print(applySpans(readJson(), transTable(text_link="[{0}]({1})", code="```{0}```")) )

结果: 这个没啥,相关知识: 算符链 [InfixPattern](https://github.com/ParserKt/ParserKt/blob/master/src/commonMain/kotlin/org/parserkt/pat/complex/InfixPattern.kt)/«Lua设计与实现» 相关章节; 中文数值 [NumUnit](https://github.com/ParserKt/ParserKt/blob/37599098dc9aafef7b509536e6d17ceca370d6cf/parserkt-ext/src/commonMain/kotlin/org/parserkt/pat/ext/NumUnitPattern.kt)/[han()](https://github.com/duangsuse-valid-projects/Share/blob/master/Others/CN_constitution.md) #learn
This media is not supported in your browser
VIEW IN TELEGRAM
不 excited ,非常不 excited 。
本来是不打算弄这个的,现在弄了,发现效率不知为什么变得很低,大概就是想择机写点小工具而已
可是这个重构真的会很麻烦吧,说好了要休息的
#Python 草生了.... 什么时候能不要挂羊头卖狗肉了,搞得我很怀疑自己能力啊,连个重写都做不到?那么简单的分词器都不会?!
python mvng.py a:b:c org.h:a,-w,--w1:1.0 -dependencyManagement org.junit:--bom,:5.7.0 -plug :wtf -parent org.my:base -module hello -fat -xi 0 -x 'parent=text:a:v' -x '.=eval:listE("contributor",opOnEach(opSetsChild("name"),["a"]) )'
#Python 草,它果然还是做了, StackOverflow 不靠谱!
duangsuse::Echo
😆 Sticker
This media is not supported in your browser
VIEW IN TELEGRAM
项目还是 去世 了 😭 #life #project #ce #java #Python
本来就没打算花太多精力,但实际上还是花了,凌晨两点;与之前为防止熬夜休息的意图是背道而驰的
其实我只是想重写 lexer 而已, Text, Diagnostics 的新概念都不足以大张旗鼓、废寝忘食的搞
原因可能是不正常的时间安排以及 挂羊头卖狗肉
This media is not supported in your browser
VIEW IN TELEGRAM
不过以后写普通 JVM 应用也可以选择 Maven 了,因为辣鸡 POM 可以让 Python 自动生成的

出于简化项目,同时符合规矩的考虑,这么做是有意义的, Gradle 那玩意太耗了,看起来 Maven 对常规项目相当合适
Forwarded from 螺莉莉的黑板报
{{颜色名字}} #Web #tools