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
毕竟现在语法添加太多了,不知道会不会出现那种必须到运行时才能 disambiguating(消除歧义)的语法

目前 implicit type cast (准确的说更高级,我们允许在类型之间手动定义转换规则 out def Type.implicitAs out def Type.explicitAs)(out def 是为了保存类型 overload 的信息,单纯 def 会覆盖之前的同名 def(覆盖时如果不使用 new def 语法会收到警告,safe scope safe def 里不允许这么做))是 object as Type-> 被用来赋值 a->prop value_expr
当然 -> 也被用来定义没有参数的 Block 和转换表达式到 Block 类型 ary.each ->println timeout(10) -> println "I love Ruby(x)"
... 应该... 不会吧
duangsuse::Echo
#zhihu 又忍不住想起那个撕逼 https://www.zhihu.com/question/42315543 话说泛型类型检查写起来也麻烦啊... 要死递归就更麻烦了所以还是简单一点...
最想批判这些不常用缩写从不加含义的人了... 脱口一大堆 terminologies 术语缩写却不告诉大家是啥,弄得我有点把 PLT 当 Procedure Linkage Table(动态链接库符号表) 的意思了... 这么做很酷吗? #cs #pl
duangsuse::Echo
不过 Ins 要类型推导也毕竟麻烦,之前模拟的时候说了不支持 Union Type(一个符号可能是两个类型,比如 (define a (if weather_fine 1 #t)),这里全局符号 a 的类型是 (Number ^ Boolean) ^: XOR) 那么不支持 type union 也就是说一些函数启发式类型推导是不能用的(又是我乱想了...)...... 好吧是我瞎想了不支持就是不支持,x => if x { 1 } else { true } 本来类型就是应该推导为 (Integer ^…
https://www.jianshu.com/p/529b21edd418

看完了之后我发现我有些误解,类型检查不仅是为了 make program compiles 所做的工作,更是为了尽可能确保程序正确做的

王垠比我懂得多,他说 ^ 是“官方”的 「并集类型」intersection type 标记而 | 才是 Type union 的标记

推导出的 int -> int | bool ->bool 表示的确实是一个intersection type,而不是union type。只不过我中间用的|记号跟union type一样,所以看起来比较混淆,然而内部实现确实是intersection type,而不是union type。

现在我把中间的分隔符改成了unicode字符∧,跟intersection type的论文上一样。我想这下他该满意了吧?也就是个表面现象而已。

def ambigous(x):
return x

a = ambigous(1)
b = ambigous(True)

我怀疑彭飞到底明不明白什么是intersection type。这个type表示这个函数(id)“同时”是int->int和bool->bool,而不是表示它“有时”是int->int,而另外的时候是bool->bool。所以如果你调用id(1),推导出的输出一定是int。如果你输入id(True),它推导出的一定是bool。

如果这是一个union type的话,调用id(1)会报错,因为id的类型有可能是bool->bool,不能接受int的输入。调用id(True)也会报错,因为id的类型也有可能是int->int,不能接受bool的输入。所以就左右不是人。

其实如果彭飞仔细看那两个变量a和b的类型,就会发现这是intersection type,而不是union type。
duangsuse::Echo
不过 Ins 要类型推导也毕竟麻烦,之前模拟的时候说了不支持 Union Type(一个符号可能是两个类型,比如 (define a (if weather_fine 1 #t)),这里全局符号 a 的类型是 (Number ^ Boolean) ^: XOR) 那么不支持 type union 也就是说一些函数启发式类型推导是不能用的(又是我乱想了...)...... 好吧是我瞎想了不支持就是不支持,x => if x { 1 } else { true } 本来类型就是应该推导为 (Integer ^…
抱歉之前写错了... 我那行 f = x => if x { 1 } else { true } 本来类型就是应该推导为 (Integer ^ Boolean)

其实是该写成 f 的 「返回类型」是 (Integer ^ Boolean) 或者说 f 的类型是(当然这点输入代码推导不出来它的类型,但假设这是我给它指出的类型) (Boolean -> {Integer | Boolean})

这里写错的 ^ (在你们看是对的,但其实只是歪打正着)被我误解成了是 Type Union 的标记...

最后:Ins 的类型推导设置那么多规则甚至用更高级的算法有什么意义呢... 有什么意义呢... 如果常量折叠没有的话 final far safe bo = false; a = if bo { 1 } else { 1R } 这种类型推导还是得个垃圾吧
This media is not supported in your browser
VIEW IN TELEGRAM
https://www.jianshu.com/p/4149a394ef88 #cs #pl

其实,这个分数的意义远远不止是一个A+,它涵盖的内容可能超乎你的想象。也许你可以从一个很小的例子看出它到底意味着什么。

在课程进行到一半的时候,我花了一个星期的时间,独立解决了曾经困扰程序语言领域十多年的难题——CPS变换。在这十几年里面,有众多的世界级专家参与过这个问题的研究,包括非常强悍的丹麦Aarhus大学教授Olivier Danvy,Andrzej Filinski,Dan Friedman本人以及他的得意门生Matthias Felleisen,Felleisen的得意门生Amr Sabry,普林斯顿大学著名教授Andrew Appel(编译器教材“虎书”的作者)。这些人为这个话题发表了不知道多少论文,Appel还为此专门写了一本书。我之所以会去解决这个问题,是因为Friedman别出心裁,把这个问题作为了一道附加题目放进了B521的作业里。

我不知道这个问题有如此之难,所以愣头愣脑,真把它当成作业题给解决了。按照作业的“道德规范”,完全从问题出发,不看书不看论文不查网络,全凭自己的头脑,在一个星期之内得到了最优的结果。这就是所谓“王垠40行代码”的含义。一个人七天,一群人十年,我想你应该知道这是什么概念。
#recommended #zhihu
https://www.zhihu.com/question/42016079

我所看到的最佳回答:

其实垠神从来没有黑某个领域,没有黑某个语言,没有黑某个编程思想。

他从来黑的都是像对待宗教一样的盲目崇拜的态度,学者和各个公司里的各种欺世盗名。

他渺小时所崇拜的山峰一样偶像,在他爬上山顶后,轰然倒塌了,他觉得爬山不值,很懊恼。
Forwarded from duangsuse Throws
MinB64 是 2017 年 2 月 8 日(6 日开始 8 日结束更新)的 Android 应用
今天是 2018 年 10 月 27 日。离「正式开始」已经一年又一个多月过去了。 #tech #dev #life
Forwarded from duangsuse Throws
现在想想当时我在 #GeekApk 时所做的设计... 真是令人头疼,因为实在是太多设计版本了...
我都不知道如果要去修订它、或者说从上面汲取灵感应该从哪里开始...
Forwarded from duangsuse Throws
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from duangsuse Throws
现在 popf.rip 这个域名好像也到期了,VPS 也没钱了,所以 GitApk 做出之前我留下一个快照就 destory 了
Forwarded from duangsuse Throws
rt. 打印机
duangsuse Throws
Photo
所说的就是第二张「GeekApkSpecShort」,因为当初在 GeekApk 时留下的设计太多了... 真的、真的搞不明白我到底在设计个啥玩意... 版本、分支都太多了... 不知道哪个是真的 哪些特性应该保留 哪些特性应该去掉
#GitHub 上用的 #javascript PDF 渲染器好像有内存泄漏问题... 处理大文件的时候直觉导致我电脑死机四次,我足足按了 3 次 alt+sysrq+i 终止所有程序最后还重启了一次...
我准备先花 20 分钟左右开发个在 Android 上自动启用 USB Tethering (USB 绑定网络)的应用

然后把 METO 的 sm.ms 图床接口代码发上来快速分享给大家

然后补充一下 Gekyll 的设计,有时间时写
然后给 InScript 添加新特性,假期结束前出总文档

👆...
#javascript #native #Cplusplus #frontend #web #pl Emscripten asm.js, 一切皆有可能