duangsuse::Echo
mvn.py
Screenshot_20210116_172723.png
39.7 KB
mvn.py trumeet:asciiart:1.0-SNAPSHOT org.jcodec:-,--javase:0.2.3|diff pom.xml - 最讨厌冗余代码了,辣鸡数据结构不该手写
duangsuse::Echo
mvn.py
刚才说完这个我突然想到关于这个 CPS(continuation-passing-style) 的一点不对…… #functional
看起来要么然之前在那篇文章上看的说法是错的,要么然 CPS 是一个类
刚才说的
程序可组合性的关键点在于,
如果不知道 return-side 的 type (接收什么变量),就是说这种 cps 式编程,必须显式定义回转方类型,或类型不安全(形式参数列表意义--)
看来只有 yield/resume continuation 是好的(
不对啊, CPS 哪里来的 forEach 😂?看来我还不够了解真正纯的函数式……
看起来要么然之前在那篇文章上看的说法是错的,要么然 CPS 是一个类
longjmp() 的控制流概念,不是函数式概念刚才说的
listE("item", ) = <items>$=<item> op($)</items> 是这样定义的(#Python 的压行技巧,不过之前说的 walrud operator 发现根本不能用):def listE(tag, op, xs): e = E(tag+"s" if tag[-1]!='y' else tag[:-1]+"ies"); [lets(E(tag), lambda ee: op(ee,x), e.append) for x in xs]; return e如果
lets(E(tag), lambda ee: op(ee,x), e.append)是 cps call-site ,那交给 callee 调用前的 continuation 应该是从 lets() 的头部(?)
程序可组合性的关键点在于,
op “返回”后要能覆盖 x 才能算够用,但此例 op 也得能覆盖(而且要实现仅改 gavTo(e,coord) 的“单至多项展开”,这还远远不够吧)如果不知道 return-side 的 type (接收什么变量),就是说这种 cps 式编程,必须显式定义回转方类型,或类型不安全(形式参数列表意义--)
看来只有 yield/resume continuation 是好的(
不对啊, CPS 哪里来的 forEach 😂?看来我还不够了解真正纯的函数式……
Telegram
duangsuse::Echo
https://epsil.github.io/gll/#continuation-passing-style-section
#FP #scheme #parser 想了解 continuation-passing-style (没有 return 如何编程?)的大佬们可以看看这人的文章,我觉得相当好。实用性,王垠那几十行代码不就是 CPS 优化吗。
照例个人观点:
0. 上文定义了 success/failure 的 union ,以及 (successed val rest) failure ,还有添加回调的…
#FP #scheme #parser 想了解 continuation-passing-style (没有 return 如何编程?)的大佬们可以看看这人的文章,我觉得相当好。实用性,王垠那几十行代码不就是 CPS 优化吗。
照例个人观点:
0. 上文定义了 success/failure 的 union ,以及 (successed val rest) failure ,还有添加回调的…
pom.xml
934 B
目标是生成一个兼容这个的POM文件(别喷为什么不用Gradle,我只管理依赖懒得被开daemon),16 行感觉还是太多了(吐嘈:结果文件是30行+啊),我本来是想复制粘贴两三行代码就可以创建项目的(虽然不知意义何在),看来还是 LiteratePy 的 way 正确一些,尽量少些模板化“代码”,共用一个项目生成工具是必须的(
当然不会像某些J2EE程序员一样弱智到随地XML),只有重视代码复用才能看到代码的许多其它用途和价值。其实可能只是习惯性提取出几个参数,再加上几个本来能省去的参数而已,整个程序员的走向却会大有不同…… 🤔
root = proj(argv[1], argv[2:])$
mvn.py trumeet:asciiart:1.0-SNAPSHOT org.jcodec:-,--javase:0.2.3>pom.xml
感觉自己的编程习惯就有一点好,非常重视可配置性(Screenshot_20210116_201051.png
122.9 KB
https://www.simplexacode.ch/en/blog/2018/08/the-problem-with-creating-generic-arrays/
https://softwareengineering.stackexchange.com/questions/257257/suppresswarnings-in-generic-array-declaration
#recommended #java #types #dev
https://softwareengineering.stackexchange.com/questions/257257/suppresswarnings-in-generic-array-declaration
#recommended #java #types #dev
Software Engineering Stack Exchange
@SuppressWarnings in generic array declaration
While doing a coding test, I ran into a problem where I need to initialize an array of generic type in Java. While trying to figure out how to do that, I looked at this Stack Overflow question and it
Screenshot_20210116_212315.png
219 KB
#Java 为什么啊…… 比 Yuuta 还多一行,而且看起来贼乱,明明我有很认真做简化功课了的说……
有的时候真的羡慕 Yuuta 那样的开发者,即便是很麻烦的工作,也能用很简单短篇的代码实现,哪怕会有一大堆类似的行居然也会比我的短
像我要省行数,总是在可读性或算法与面向对象模式上极限1换1……
是应该改一下套路,之前习惯的是有语义区别可以不换行不空格,究竟是 Java 该换的肯定要换,不换的话没有眼力看啦……
像我要省行数,总是在可读性或算法与面向对象模式上极限1换1……
是应该改一下套路,之前习惯的是有语义区别可以不换行不空格,究竟是 Java 该换的肯定要换,不换的话没有眼力看啦……
for (String fp : args) u.tryRun(() -> play(new File(fp)), fp); 🌚 我脑子瓦特了写了这么个函数(() -> 内仍需 checked exception...)方法引用中抛出的类型java.io.IOException不兼容 啊啊啊啊啊 🌝我就不该觉得 Java 会不检查,比民政局管得宽……
世 界 级 检 查
满 贯 类 型 安 全
See you at @fishing_daily ! | (Archived) YuutaW 的版聊频道
完成了! 使用纯 Java 实现(视频解码和音频不是自己写的) 视频由于性能原因进行了压缩 视频由于性能原因会稍有一秒左右落后 音频是程序放的,不是后期加的 手持手机拍摄,质量不佳见谅 别骂了,我知道这很简单。 源码 https://gist.github.com/Trumeet/fd4e93d69d78dc4ac14d5cac42dfff7e
Telegram
duangsuse::Echo
https://duangsuse-valid-projects.github.io/Share/HTMLs/deep.html
duangsuse::Echo
for (String fp : args) u.tryRun(() -> play(new File(fp)), fp); 🌚 我脑子瓦特了写了这么个函数(() -> 内仍需 checked exception...) 方法引用中抛出的类型java.io.IOException不兼容 啊啊啊啊啊 🌝我就不该觉得 Java 会不检查,比民政局管得宽…… 世 界 级 检 查 满 贯 类 型 安 全
LINES=68,COLUMNS=236 mvn exec:java -Dexec.mainClass=JPlayer1 -Dexec.args=a.mp4
LINES=68,COLUMNS=236 mvn exec:java -Dexec.mainClass=JPlayer -Dexec.args='a_con.mp4 a.mp4.wav' 真棒, Yuuta 的一直可以运行,我的老出问题 🌝
Screenshot_20210116_235016.png
217.9 KB
闹了半天原来是我算法写错了…… 药丸啊,原版猿版替换了半天