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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
回过神来, SwitchParser 用类级抽象的价值开始显现了,成功把巨大的 onPrefix 子程序抽提成 3+2 个依赖前缀名的小子过程
同时还修复了一个 dynamic arg 的 bug 和解决了 command alias 的支持问题。 好了现在只剩下 subcommand 一个没支持了,嘿嘿……

或许重构会迟到,但永远不会缺席。 make argparser great again…… (草)
This media is not supported in your browser
VIEW IN TELEGRAM
迫不及待地想把那个高大上的库打得落花流水了,我是指 API 和实现优雅性上。
马上就没有它支持我不支持的功能了,草(不过还是觉得好无聊啊, multi param argument 不知到底有何意义…… 很好用么)
真希望以后发布了会成为那个库对比名单上不敢写的东西啊,毕竟已经多了这么多功能了…… (虽然我还是觉得那些功能纯属鸡肋)
唉,果然还是工程上的事人多些吧。 Kotlin 的解析组合子库,除了 ParserKt 外只用一两个,太无聊了…… 算上 JVM Java Scala 的估计也不多。
现在的 JVM 程序员怎么思想都这么封闭…… parser generator 倒是见过不少
https://github.com/taocpp/PEGTL 草,开始我点进去的时候还害怕这个库非常易读,没想到还是传统 C++……
struct sign: one<'+', '-'> {};
struct integer: seq<opt<sign>, digit> {};

就是
val sign = elementIn('+','-').toDefault('+').convert { it == '-' }
val signDigit = Seq(sign, digit).convert { if (e1) -digit else digit }
啦。
为什么这个道理这么简单,但是明明是大佬的人却不懂…… 我以为高等的 C++ 程序员就会明白,命名不是越短越好、定义不是越长越好;可是为什么我看过那么多框架,懂得精炼的人却那么少。

太聪明了…… 聪明反被聪明误么

parser combinator 是老东西,可是为什么作者凭这个就能叫 "The Art of C++" 呢?还是缺少点文档之提纲吧……

不过我真的喜欢 taocpp 的项目,很有水准而且可以说是“完美符合常规”的 C++ 编程之道
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
https://github.com/taocpp/PEGTL 草,开始我点进去的时候还害怕这个库非常易读,没想到还是传统 C++…… struct sign: one<'+', '-'> {}; struct integer: seq<opt<sign>, digit> {}; 就是 val sign = elementIn('+','-').toDefault('+').convert { it == '-' } val signDigit = Seq(sign, digit).convert { if…
其实仔细想想,这行凭能力说话,大佬永远是不会差的。
与其把心思放在猜测每个接口程序员乃至用户会如何使用,还不如好好研究下算法和数学思想,我是智商不够用,被迫选择干这种低劣愚蠢的“优化”的。

既然这么简单都没人用,显然是别人已经知道了也抛弃了,库的作者应该是为算法、技巧和自己的名誉服务,怎么可能应该是给使用它的东西服务? 看来我想得太多
草,凭借这样的接口能拿 1.4k star ,真是佩服 JS 程序员们了……
duangsuse::Echo
4.3K 了
草…… 说起来我今天又靠整日坐+熬夜 把 subcommand 写出来了…… 其实实现思路不咋高大上,而且 可能有缺点。
这样即便能比上另外的库,对我而言又有什么意义……
因为苹果商店审核通过了这次更新,所以他们删除了阴阳怪气的话语
你依然可以在网页存档欣赏这段话
嗯…… 写完了。 明天开始给 funcly-PKT 写测试了,写完测试和 unparse 我就走…… 因为 Kamet 的设计不需要所以不写 Layout 解析和 LexicalScope 解析了,赶快 publish 的好
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from 层叠 - The Cascading
网友的想象力是无止境的……

https://t.me/lychee_wood/17004
不过说句实话 @Telegram 好像支持 GIF 头像了吧? 🤔 #Telegram
Forwarded from dnaugsuz
嘛,吃早饭的时候想到 ParserKt 跳过 Expr 里的 /* 注释的问题,说是不可能完成(因为要 lookahead),发现是我错怪它了……
它读取 Expr 链用的是 InfixPattern ,而这个 Pattern 接收的是 Pattern<Char, InfixOp<T>> 所以只要给 Trie 外面包层 Piped.decide, 然后如果是 /* 就返回一个跳到 */ 的解析器,否则 always(op) ,实际上是可以实现,只不过那个跳到 */ 的Pattern超级难写,而且这个做法超级鸡肋而已(只为区别除号和注释就得在 Trie 外再包一层…… 还不如允许 lookahead 开销小呢)