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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#tech 我想我 2018 年最大的成就就是知道了自己有多菜,然后就是了解了一下现在的 x86 物理机,和一些基础的函数式理论(

duangsuse | ¯\_(ツ)_/¯ |学渣 ∈ [E²PROM, 含幺半群)

大概就是说这个( #yearPassed #recommended

E^2 PROM 是说 EEPROM,嵌入式领域名词,『电可擦除』可编程只读存储器
如果是 EPROM,可能就必须拿紫外线照射清除电荷来擦除存储器了
有些 EEPROM 还可以以块为单位进行擦除?


含幺半群
是说 Monoid(半群 Semigroup 的扩充),函数式编程名词,含有『单元(也叫“单子”)/幺元(不动点)』的半群
如果一个范畴(比如字符串们)符合『封闭律(closure)』和『结合律(associative)』,就可以被称为半群
如果一个半群符合『同一律(identity)』,就可以被称为含幺半群

封闭律是说对于某个范畴,如果有态射(函数式名词『态射』)
f: B -> Cg: A -> B ,就一定有态射 h = f · g

h :: A -> C 

它允许我们『组合(compose)』函数来构成我们的逻辑。所以是必须的

compose :: (b -> c) -> (a -> b) -> (a -> c)
compose f g = \x -> f g x

compose
f 是一个态射,类型签名为 (b -> c)g 也是函数,类型为 (a -> b),最后它返回一个函数 (a -> c)
f
输入一个 b 类型可以拿到一个 c 类型,g 输入 a 类型拿到 b 类型,最后我们要由 a 类型拿到 c 类型,这个函数的实现((f (g x)))是有意义的
至于为什么参数是以箭头分割的,是 Currying (柯里化)的结果,不过这个方法其实是 Moses Schönfinkel 发明的,因为开始的时候 Lambda Calculus (lambda 演算)的匿名函数都是一元的,只有一个函数不能多参数
于是就弄出了柯里化,比如说 (+) 这个 Operator 操作符

(+) :: Int -> Int -> Int (Kotlin 里就是 (Int) -> (Int) -> Int)
其实就是说 λa b. (prim-add a b) 也即 λa. λb. (prim-add a b)
不过这样就有一个好,因为我们可以 add2 = (+) 2

Haskell Brooks Curry 最大的贡献可能是搞出了个 Y Combinator,相当出名的不动点组合子,但其实你们一学就会发现这些东西其实没有那么高大上,我觉得这类还是比较 trivial 的,不如数学证明多烧脑
理论上的东西开始理解的肯定是烧脑,但后来其实感觉真的不如数学,不过我不是说计算机科学怎么怎么地,显然我还没有那个资本。

这个 compose 用来组合两个单参数函数(也叫一“元”函数) lambda 们,用 scheme 写就是

(define compose
(lambda (f g)
(lambda (x) (f (g x)))))

((compose display (lambda (x) (+ x 1))) 1)

结合律就是说对于某个范畴, (f · g) · hf · (g · h) 是等价的,就可以随便组合不会出现线性结合不等价问题

数学上加法运算符也有结合律, 1 + 2 + 3 ≡ 1 + (2 + 3)

不动点(fixed point)就是说对于范畴的所有对象,都存在着一个态射 i: A -> A 使 i(a) ≡ a (不发生变化即为不动点)

一般被定义为 id = \x -> x

上面的 \ 都是 Haskell 代码里的表示,用途是表述 Lambda λx. x 等价 \x -> x

喜欢数学的肯定了解这些东西,因为这函数基本都是数学上会有的概念,比如定义域、分段函数(Haskell 的 Guard Pattern)什么的,可以很容易看到定义的不动点
Forwarded from 羽毛的小白板
想了想,我 2018 年的最大成就就是弄了个 ES5 的 parser 还有一部分 TS 反编译
黑历史黑历史了
羽毛的小白板
https://zhuanlan.zhihu.com/p/53714077
Unicode 的组合字符和 normalization 我之前还知道,UTF-16 的 surrogate pair 我之前没听说过不过作者自己也在吐槽这个设计很无奈而且坑
大家了解一下怎么规避就好了,我觉得其实还是语言标准库设计者工作做得不到位,所以 Kotlin、Ruby 这种可以『打开类』添加扩展方法之类的可能就比较好,为原来不怎么支持 Unicode 的语言支持完全的 Unicode

grapheme cluster 所谓『显示字符』
u̲n̲d̲e̲r̲l̲i̲n̲e̲d̲
我之前其实不知道
नमस्ते

combining character 『合成字符』
我之前知道的,ES6 书上提到过
He llö
PHP 里也是有时候能看到的,现在用 Piwik(现在叫 Matomo) + PHP7 默认安装的话或许能看到 Unicode 归一化使用 PHP 代码还是 PECL 原生函数的优化提示

至于 ligature,说到 ligature,就想到如来佛祖的封条上的书法... 就想到孙悟空... 文体两开花多多支持(跑
这个连字呢,程序员平时都可能用到的,现在就有些『新潮』程序员在可以自定义字体的编辑器里用

至于我为什么没有管这类的问题,当然还是我现在没有时间学太多东西... 其实我也是可以管的,但太花时间我又没经验

反正就是很坑的问题,不过我觉得有处理价值,但没有特别的处理价值,以后自己实现完整的程序设计语言或者解释器的时候可以考虑到
Wow ffplay 还有这功能... 虽然我有频谱分析仪
Forwarded from dnaugsuz
还好玩(作者也是厉害了
XPM... 懒得折腾 PIL 了,有些题没思路(比如 TXT 那道和 PHP 那道,好笑吧,学 PL 理论的居然不会弄这道题),有些题思路是错的(或者实践起来有问题,比如我以为是DTFM 音分析但出错的),弄完我溜了,做不完算了...
ok.xpm
2.6 KB
累死了...(答案不直接给(要不然就破坏游戏规则了,这个是,图当然要自己画,跑,修得好的话肯定就是有能力解题了
过了,累死,我居然还想用 ImageIO
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from dnaugsuz
第一次参与这种活动比较失败(6 个人都做得出来我完全一大堆错思路,连 .chars.uniq.join(&:+) 都想出来了...
最后结果是完成 12/21

没有完成的有 Nazo.TXT(3)、Familiar Sound(3)(这个是有思路可是是错的)、Condition Judgment(3)(完全没有思路,我还特意查了 PHP 标准库文档,一个数字字符串怎么可能同时不是 )、Encryped Video(0)(有思路~~查的~~,但是无效)、Script(2)(这个大概就是姿势面的题吧... 没见过这种语言)、SSO Login(0)、OAuth(0)、Mini Program(1)(微信小程序)、Happy New Yeah(无法理解题意)
Forwarded from Rachel 的消息发布站点 (Rachel AFK)