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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#zhihu 你怎么看回形针PaperClip《和 10 个批评者一块视频聊天》? - duangsuse的回答 - 知乎
https://www.zhihu.com/question/423360626/answer/2336787754
为中文互联网科普一切技术、公开财报、上央视时没人称赞你,等到你一被“拉下神坛” “戴上公知帽”,各种疑点分析就来了,境外金主和技术外援就出现了——大家都这样,你凭什么不一样。

你说话叫剧本的公关行为,继续发视频叫隐瞒过错,活着叫还能发帖,死了“人人叫好”,回形针曾经科普的荣誉呢,等到这时候就有一大堆理中客说它夹带私货,为什么拿中国举例;待到这时候才有一群“知识分子”嘲讽它根本不是硬科普,尽管这群人在此前后都没能做好他们看不起的科普工作。

然而回形针不需要“外网”好感度,YT选的是没广告费的中国区。回形针对知识已经竭尽所能了,被小人骂“屁股”歪,被君子骂不会说话,逼着它做 让这群根本没关注过它的人确认correct性的“科普”视频。

最后的最后它也没有做这个早已和WWF和地图无关的事情,这便是遗臭万年。 只要它做了,屁股论就无话可说了,可它没有。它不懂吗?恐怕是不相信自己真会像今天一样吧。你们很伟大!嘴多就正确,嘴多能造核弹、布管线、强中国!


然而死去的战士终究是战士,嗡嗡重复的苍蝇终究竟不过是苍蝇
《论 #zhihu 大佬如何重新发明wiki》 🌚🌝👌

越高级的数学扭来扭去的符号反而越少、定义反而越明确,这θρ都没有。基本和我自己花了9天最后得出的柿子一样,那我花时间干嘛,不就是找公式和代码的对应关系嘛😂 ,现在长记性了,一个对应关系找几天不值得

和 English wiki 相比,中文公式多多少少要拽那么一点花体希腊和 F(?)=F(f(t))= 这种毫无章法的拼合,不会细到e^项的功能都直接写出来,正如3b1b所言,缠绕在虚数轴上变频幅,这非一家之言

所以中国人就活该内卷数学🌚🌝
在中国学生眼里“折磨人”描述不清的东西,只不过是数学可视化频道上1/60次的谈资罢了,它之后还有FFT、有多项式简化计算

写了那么多知识点,我对伯克利大学的 #python 数学分析文甘拜下风。虽然代码还不够简洁,这个理论优雅性,1行完成DFT(x到X):
N=len(x);i=arange(N)
k=i.reshape((N,1)) #[x]列表
X=dot(exp(-2j*pi* k*(i/N)), x)
#(N,1)对复数e*x点积是 (N)
https://pythonnumericalmethods.berkeley.edu/notebooks/chapter24.02-Discrete-Fourier-Transform.html

相比我 率(k,f) 再newAry k=0~±N 成频谱,然后 Sum k ,VecN 运算 e^+-2j 高到不知哪里去了,正反函数异同定义,积分和参数都免了,自始至终是数组批量运算 音频缓冲区。 dot(e,x)/nK 就相当于率(每项)还原1:1了,都不迭代甚么kt (nT分圆,数组内转k圈,乘求和,就是for k for t 的频谱[X(k0),] 你积甚么分啊)
dot其实是 dotEach(动t点)于律k,还原后,求和k:tNow

外国的月亮不一定比中国圆,但外国的数学就是比中国美。

对于 a-t 取代θ-ρ, asin 取代 sin^-1 ,Sum[n=0~N]wn xn 的这种正确使用语言的数学,不应该因为符号不同就不看,但对那些滥用角标顶标和等号展开式、斜体花体关系式定义(令a的长度为n; n=a长)的,未有任何细度的定义就使用,不要看🙈 看懂也没用

2天后我写了JS 版NDarray 的实现,但还没太理解矩阵。 因为JS不好plot改乌龙了次
duangsuse::Echo
#zhihu 你怎么看回形针PaperClip《和 10 个批评者一块视频聊天》? - duangsuse的回答 - 知乎 https://www.zhihu.com/question/423360626/answer/2336787754 为中文互联网科普一切技术、公开财报、上央视时没人称赞你,等到你一被“拉下神坛” “戴上公知帽”,各种疑点分析就来了,境外金主和技术外援就出现了——大家都这样,你凭什么不一样。 你说话叫剧本的公关行为,继续发视频叫隐瞒过错,活着叫还能发帖,死了“人人叫好”,回形针曾经…
https://tttttt.me/dsuses/5066 #zhihu
然而死去的战士终究是战士,他伤口上嗡嗡重复的苍蝇终究竟不过是苍蝇

是的夹带私货很可怕。没有人能发现苍蝇的“污点”。在过去实近200期动画正片里努力做战士,在「团结」的中国却终究是要有今天,“苍蝇不叮无缝的蛋” “别以为「中国人」好欺骗”,利用订正失误、精查团队血统、捕风捉影罗列恨国『罪名』,于是苍蝇和正常人各种自媒体,这么随意的给2016起200期视频一秒秒设计的场景渐变定性,是美国间谍。

这群自媒体还真是从渺小变伟大啊,在他们漠不关心的领域拳打脚踢 质问黑白,国安机关没行文 媒体就开始罗列断章 标题党“事实”地乱叫 ,能摧毁一切的团结,真励志,很像民族精神呢!

今年『干燥工厂』实体还没查封,就是他清白最好的证据。至于什么营销号卖车卖药卖气愤的 说是没查到位还有举报 或者早已被实锤,随他说去吧,保守晚节。比你拿嘴查得好

你们就没有怀疑过,回形针再蠢也怎么敢故意搞两面做派 阳奉阴违,故意激怒网民,他可是做过无数话题的科普的,就是间谍也不会在舆论下玩脱吧。当年的确有人把网民当傻子,但不是回形针。

骂不死比你牛的真罪恶,骂死无辜的。 西化可怕,随口断定人为“私货”发视频的,更可怕。

👇 #js #zhihu 以1分钱为单位记整数是基本常识
确实反映到计科基础教育缺失,因为都有1.25秒这种小数点概念;但大家意识不到要克制不用%1后的1e-10小数位 避免偏差

这个人基于toFixed(n) 即 floor(it*k)/k ,k=10**n 混淆字符串,却没意识到JS这么设计正是为避免他这种瞎设计系统的计算
#zhihu #python #code https://www.zhihu.com/question/430688755/answer/2344167773
https://www.cnblogs.com/ruhai/p/10820578.html

#algorithm 快速排序把列表二分至仅1项,分前先以大小移位partition ;合并排序也分至仅1项,完后保持有序 merge 。分别是基于 partition 1->N 和 merge N->1 子集分治法
读取次数O(nlogn) ,n 是每拆分层项数, log n 是层数(如4=分2层)

还有些算法推荐大家了解: Delauny三角剖分, MST树,kD树 . #GLSL 上面也有一些
https://zhuanlan.zhihu.com/p/375542978
https://zhuanlan.zhihu.com/p/42331420 #opencv Subdiv2D
#zhihu 典型Nmsl人 爱国是生意,进口是生活
世界上最反华的国家
#zhihu
看到 #zhihu 民对俄撤军乌克兰的评论,居然全是阴阳怪气乌克兰和“乌友”、希望两败俱伤的
Anonymous Poll
89%
我震惊了,原来国内都是吃乌克兰人血馒头的人吗?
11%
我错了,战争扯到北约西方纳粹台湾一大堆,是一盘大棋,乌国药丸
duangsuse::Echo
#statement 人能活几十年,计算机界也有70岁, 对技术怎么就这么短视😒。 过几年再看看,会觉得吵的是毫无收获,你新写的东西真的是唯一的吗?世界上甚至有人实用过。也有无数种视角你没做过,这并不能作为什么谈资 自己做CS,科学,搞得跟信教了一样,主动提AI,主动骂狗shit ,你拿什么荔枝? #ce #reveng #sb https://tttttt.me/Javaer/895034 哦,刚刚想起来 跳转Block 的层级也是可以做混淆的,但这是 #security 领域的东西,一般人只会用加壳脱壳扫内…
#ai 这个多少有点恶心了, #PL 人都这么抽象的吗?🙄
#zhihu 回答大意:
GPT不能说是编程语言,因为套路和准确度都不够统一 也没有生态和社区,但可以帮更多人更简短的完成任务,所以说是最好也没有错。

《程序员的心理疾病》
☝️文中提到的礼貌问题GPT全解决了,所以帮人用好它的人,就成了被口诛笔伐的“蠢货”

唉,不论是非只论善恶,也难怪中国的PL人都要出去留学呢

没点素质,真润出去的PL大佬哪会在意这点细节?多是一群连parser和IR都没构造过、OOP和trait多态都不知咋实现的愤青,看到自己模式匹配和English terminology 的技能被AI“抢”了,就破防到跨领域无论据追捕

#cs 的学生成千上万,但文化程度这么低的也是第二次见 👏😓
1
duangsuse::Echo
#run 这个上海月薪900(10年前)的厨师 墨西哥的山上差点被🐺吃,但现在合法滞留在美了($8万假护照, 50w RMB 啊) 而这个 #apple WWDC 小粉红,有美国籍“二等公民”不入,自愿回国当三六九等 人上人😅,被拒签却莫名痛骂🇹🇼 你 落户 台湾省不就免签了?😅自顾自地恼羞了! 国内有一个好,叫见不得别人好 (没错“中国”有3种护照:人矿85、外交150、台湾168 免签国,包含G7😅 嫉妒了) (但台湾归谁管 外省人也没纳过税啊..) #science 赚翻墙信息差的人真是可悲啊,…
#bilibili #zhihu #tw 多亏团结的爱国人😋 主动把台区独立 [八炯:ban IP ,网独,笑惜了]
自古忠🇨🇳🇷🇺难两全,祝粉红都能像胡主编 看清自己的主子和父母各是谁,别再轮回狗死兔烹、功高盖主的极民狂欢。

以为台人也自卑易怒就人论事,谁知背后有了平权普选的祖国和盟国,公子哥在政客眼里竟“输给”农民!当场泪奔
《精致利己》 BV1Xs4y1q74k
聚在一起喊统一,各自为政玻璃心
宣扬三六房九等,歧嘲二等公民籍
只知存亡主奴狗,不见民权先国名
主动翻越红专墙,自恃台湾是井蛙;民被自由开源救,盗作人上人特供😅

嘴上固然赢两次,心早离岸墙国奴,
谁与中华比堂正,浑身神圣敏感瓷
特许自己孝中拳,恼羞台湾跪美拳
媒体喷粪没主见,白莲自觉墙中墙
碰瓷全球被洗脑、日韩台史是偷国

似那孔乙己 窃书不叫偷
方方帮他发声,就说民媒良心
支部给它“建议”,就喊外媒狼心
笑果阿Q自嘲,国产文化输出
豪斯用个拟人,以狗谋辱好死
怎么不买几张《战狼3》照照镜子?
以国辱华的红卫兵!🥰

国家=文化=权力=我=避名讳 也是够有入侵性的🙉随时恼羞了,鲶鱼内政+疯狗外交+敬酒霍金

碰瓷互害思想配得上苦难。 不是岁静,是岁独静;不想键政,想建独挣
2
duangsuse::Echo
最近几天工作效率为0, 也是因为 #TODO 的项目结构导致 😔: PRR 是递归的正则解析器,用来读写 json,css,lua java 等语法树、class,wav 等二进制,乃至py和自定义运算符 ISON 是类于JSON的标记语言,但它的序列化关于“一个对象”,对其调用或赋值; 用来实验和js的 RPC- FFI jsju 是绝句编程语言的弱类型解释器,可以用“很新”的这一版语法支持写出js的语义,比如 #android 的剪贴板共享 linuxcon 是代码博文的文化节,包括 badapple(包括在tty操控X11)…
#js #zhihu #tiktok Svelte 噗,连个 BooleanArrayInt(32 -1符号位) 都能讲一整页,跟个Moshi似的
bitflags 都没用过才会觉得mask 很高深

我真是醉了, 怎么这些前端都喜欢整得好像 CG 或 #algorithm 领域很牛逼,而觉得自己对render的理解比 Chromium 项目实现的 DOM 还深

16ms 检查每个组件是否要重绘?(Monaco) 用translateY实现scroll ? 那要 setInterval() 这些浏览器主循环干啥?要Blink干啥? 真希望这些H5框架早日步 #android 的后尘(虽然它们的API没有很复杂)
duangsuse::Echo
#javascript #blog (虽然很简单)算法整理 https://blog.lwl12.com/read/ife-s-task01.html "IFE 2015 Summer Game Qihang TASK01" Math.ceil(Math.random() * 3) 虽然只是很简单的表达式,我推敲了一会,主要是考虑概率平不平均,实际上很平均(主要是我数学不好 233 Math.random 会返回一个小数,介于 0 到 1 之间 三倍之后,0.1 0.2 0.3 (下的)会舍为 1…
1. 《答案在代码中:“实现需求”的双重含义》
😒我倒不觉得 (a+1)%N 往复<N是个坏写法 ,反而是 (剪刀, 石头) in (0~2).zipWithNext.toDict 会多此一举
#py #code
import random

def game(rules="石头 剪刀 布".split(),胜=+1):
comparin=lambda a,b: "平" if a==b else\
"胜"if (a+胜)%len(rules) == b else\
"败"

a=tuple(random.choice(rules) for x in range(2))
return (comparin(*map(rules.index,a)), a)

至于 data Duck(name:Str) - quack=say("$name") 的OOP是否胜于函数式,我倒觉得 class vs. {it+1} 下, 还是前者更值得删掉
毕竟 Event, Observer, UI 这些都不是Duck("唐老鸭") 这么弱组合的; 退一步讲 json={dump,load} 也比class简洁有效

2. 此作者的 #dalao #ai🤔 https://www.piglei.com/articles/chatgpt-and-how-we-programming/ @lilydjwg 依云 也写了评论
不过,他的代码审美观点倒是和我很像 #zhihu
“匈牙利命名法就是把变量的『类型』缩写,放到变量名的最前面。

关键在于,这里说的变量『类型』,并非指传统意义上的 int/str/list 这种类型,而是指那些和你的代码业务逻辑相关的类型。

3.Django. HTTP模型
#learn #FP 从“面向运气编程”到“设计程序”,「编程是什么」有许多天差地别的答案。

编程语言的范式。以社区的主流写法而定(FP之前后:统称过程式 vs. 定义式):

PP结构化- C,Go,Perl,Lua

C是会计算(跳转)栈、整数/struct* 类型到成员地址的汇编,它的对象检查很弱,也没有规范的List,KV数据类型(SDL,linux,qemu 这些都有自己的"utils")

GC需要定期"stop THE WORLD"并自 static/调用栈变量遍历对象图,连[]{} 都没有的C当然找不出“0引用”指针,更多人使用shared_ptr<T> 引用计数实现Pair<AB>等数据

OOP面向对象- C++, Java~, .NET~

FP函数式- JS,Py, Rust

若对象用 函数值参数/监听器字典,取代override 那就叫“闭包closure” (其可见/可定性同interface,都为 public open)

类比,AbstractAnimal=(T={eat,say})=>“构造器”(name)=>{name, __proto__:T“类型T也有proto”}

“弱结构强脚本”轻松于万物class{}。fn=a=>(b=>a+b) 能从词法上文捕获a,不用 new fn$1(fn.arg[1]) 手动把a放入匿名对象

PF纯函数- Haskell Scala Lisp~

冷门:
FRP响应式- Rx,React

- x86 wasm
在 .data 段加个字符常量, 再在 .text push bp;sub sp,N 栈分配调用 libc:printf
甚至需要关心 nasm; ld 仅仅来让print() 能跳转到dll的“地址”,不会SEGV

LP逻辑式- SQL Prolog #relational #types

逻辑问题也有函数域和'=',只是'a=b' 的含义是“解构赋值” 出解集。b能含变量: [1 x]=[y 2]
a=b, b=1 应求出a=1 ,因此执行流程是 cut(=) 深解构, ',|'and or 靠约束过滤解集, 最后 cat 深建构

若等号右边必须已知,在 ([1]+x)=[1 2] 的求解中
(+) A B
|A=[], B
|A=[x a], [x (a+B)]

appendo A B O
|A=[], O=B
|A=[x a], O=[x appendo(a B)]
里,O=[x 递归] 就无法匹配出 A=[$x ] 这些输入参数了

当然,变量是值。“解”可以是 [List T] 这样的含“类型”变量,<T> 一定是“类型函数”加过的变量,所以:[List T]就是函数签名
可以取各处T的成员(接口)交来infer调用、单独查找fun重载,但本质上都是这样:

fun Box<T>.let(f:(T)->R)=listOf(f(item))
let A B
|A=[Box T],B=[Fn T R], listOf(B.invoke(A.item))
|重载,.
listOf T..|[List T]

阮一峰 体验 👉 swish.swi-prolog.org/example/grammar.pl //在左边粘贴关系, 右边查询,如 murderer(X)
tomstu.art/hello-declarative-world
duangsuse::Echo
#algorithm #FP 版的 list 累加法杨辉三角 ps. 也可以用DP和代数式推算 P2:垃圾 itertools #py #code from itertools import accumulate,islice,chain fib=iself(2,lambda x0,x1: chain([1,1], (x+y for x,y in zip(x0,x1)) )) def 杨辉(): #pascal_triangle row = [1] while True: yield…
#sql #ts Prolog 牛逼! 正确的关系式搜索+ 同时实现 parse 和 toStr 😱

#zhihu 灵感来源

e(E) -->{E = [I,Ea,Eb]}, %重写规则, 'eX'为优先级

%利用 链|e1(E) 括住内"*/"
e1(Ea), op(I,"+-"), e(Eb); e1(E).
e1(E) -->{E = [I,Ea,Eb]},
e2(Ea), op(I," */"), e1(Eb); e2(E).

e2(X) --> number(X); ("(", e(X), ")"), !. % 单项值/字面
op(I,W) --> [C], { nth0(I0,W,C),nth0(I0,"加减乘除",I) }.


5行就能实现一个str”模板“,写法相对匮乏但功能丰富,吊打 Haskell 的 TextCombinator 🥺

❤️ https://eu.swi-prolog.org/pldoc/man?section=basics
这里还有个Lisp实现
duangsuse::Echo
#java 看到一篇维基挺有趣 'T'物 泛型类 造于 此刻, 值 可变<T> - 读=值 - 写(:T) 值=它 - 方法1 泛型类<数>, 写(5);说(我去读) - 方法1 泛型类<N>, 写(5.5);读() (说) 绝句不使用“元类”。 T同名例、T 的变量域是隔开的(T上没有“静态”),类型保存在TYPE里 物 值() .地址 “函数,管道 等对象不能是key” - 特征码 数 - =(:值?) $YN 类 地址 …
#PLT #zhihu #wasm Moonbit 月兔编程语言alpha(reScript 作者的续作), 提供了许多算法(HAMT tire map, AVL tree) 的 code playground

语法有点像Go+Rust,支持List/Array,模式匹配和推导,但非常轻量,而且和Go一样易用,编译到WASM❤️

本来想答一下的…… 但最近还有框架在设计,因为没发现比绝句更多的功能或更清晰的模型就不想再分析了

自己在设计的框架和业界差别太大…… 看着这满屏的 let,self,func 觉得,在定稿前,我不想太仔细的看其他API。我想保持自己的术语体系
现在我不关心那些即便“学会了”,也对设计没啥价值的技术细节

——
就在刚才,我发现即便作为一个前端框架,也是可以用“递归下降”的思想做数据绑定、配合“逻辑式编程”做表单验证, 而这种的递归下降,便拥有了CSS选择器的扩充

EQ 模板函数应该接受3种情况: div(p(), p(), html`${变量}.txt`) (doc.body 添加 | .childNodes[i++] 解构 | .querySelector 匹配)
都会注册相应的KV和监听变量,从而实现爬虫、列表节点复用的功能, 按顺序解构,就是基于“编译原理”里特有的技术 - 其实就是树遍历而已

节点变量 when(x(x=>[x==0, true]), [b(x), i(x) ]) 甚至能反过来执行,验证粗体显示的只能是0 (虽然我不清楚有啥用,但2行代码 1个功能点 挺值的)

when(class { User(age) {age=rn(18,99) } }) 可以定义强类型表单,避免在 sel(age) 的程度上暴露<input>的概念,这种“低代码”不是以设计降级为代价,它也提升了数据验证&输入的一致性,容许服务端再次验证JSON格式的表单

算法世界的原理,是做不到和现有框架、和其他算法如此深度的联动的;不仅让应用更灵活, 连算法也更简单了

对我而言,(编程语言的价值== 它所提供“设计体系”的价值) ,我是没有在意“编译”到什么的
Ruby 和PHP的衰落证明,没有成体系的语法糖,没有扼要的对象接口模型,代码越多就越难增添、难复用;框架术语越多,精力的内耗就越大

就是因为心智模型能提前消灭绝大部分的问题,把本质相同的功能整合到单一写法上, 我才把这么多精力放在编程前的设计。
对代码仁慈就是对用户和程序员残忍……
duangsuse::Echo
#blog #meme 看到易语言还在VB++ 的范式旁徘徊 😅,并且觉得编程语言 是种必须特色和备案的「核心技术」… 我想复刻下这2007年文章的口吻: “绝句.ju”十分钟入门教程 作者:转载必须注明出处 亲爱的朋友,您愿意花十分钟的时间,来了解一门全新的编程语言“绝句.未公开”吗?(搞笑向 btw. 很难想象标准库与ES7接轨,拥有函续、不/可变数据集、流/叠加、双主语的绝句,还能用“合规”的记法支持VB7时代的“正统中文编程”👀 - 起点 将123写到屏幕 100.123:[x] …
#zhihu #PLT 又看到有趣的中文编程设计 ,做些科普。 👀

1.打这些太极 还不如就叫真假,另外,加语法糖并不是以混淆基本语法,以编程的一致性为代价. PHP,Ruby,Py2 和VB已经玩烂过这套“大小混写”了(你怎么不用神奇GPT编译呢?)

2.子类型对应的是强制兼容,而非隐式数值转换。 进制只是表示法,SQL那种类型只是验证位数
你说的不需要看(隐式新建类型变量)、运行时可见,Haskell、Kotlin也支持,但你对连 List<T>,T->R 都还没懂的人弱化类型,就利于他们学用新接口了?别把隐类型当成无类型

3.其实,只要编码统一,最常见的bytes.replace和非空split都OK多字节字符。即便你想像Perl那样囊括万物,得出的语言可能就是一个Str运算的节点图
4.GC引用和Str/Builder的隔离不就是? 你还混淆了编译期和int*两期变量绑定 (x86 ABI -O0 就是用esp-4-8栈指针传参的, vararg 就是靠这个)

5.JVM每天都在跨线程 (volatile Object)vars=新引用 ,C#还支持并行For,numpy 则支持GPU,SIMD ,为什么要把废话说得像真理一样啊啊啊..

6. #define str char* 后 str a,b; 你就会发现C的类型运算符本身有问题
另外,int(int,int) add 不适合写类型推导
7. 文字游戏。 add(a,b,&c) 的汇编叫无副作用?
C有函数指针啊,而且Linux还用它“实现OOP驱动”了
只是没 a=>new(b=>a+b) 闭包对象而已,C的落后并不是只在写法上,是GC,API,types,memsafe 的全面不足,但是把C的错误当宝就是程序员的问题了

另外 看见贺老锐评#js 函数式提案,发现很多都被现在的EQ设计过了…

Iterator helpers
[1,2,5,1].Q.firsts(x=>x<3) //基于waitFun,故同时兼容 [],func*,async

Record&Tuple
when(class{
User(name){表单验证}
})

Stage0:ADT Enum, tail calls
when(class Either{ //EQ继承很多绝句里的语法
A(v){} B(v){}
})
noOp=(a,b=0)=>nest(b=>{
if(a!=0)loop(a-1,b+1)
})


Stage1:Observable、Emitter, Extensions, Partial application,Pipeline operator,Memo
前两个是 obj.it.xx 的核心特性
user.to(_=>{name="Jack"})
Str.it({
cap:_=> _[0].toUpper+slice(1)
})

compose管道也是

num=(a,b)=>a+b
it.n([num.it(+1), x=>x+'%'])
is.ST({num}) //memo


模式匹配,不就是EQ的基石嘛
when(res,
[{status:200,body}, body!="", fn(bodyVar)],
[Some(x), x],
[None, 0]
)

「前人造过的轮子就有点像是数轴上的有理数点:稠密,有序,无穷无尽。但是真当你用的时候,你会发现,你的实际需求有着几乎100%的概率落在有理数的缝隙里。」
duangsuse::Echo
#china #history 日常? 前者忘记是罪,后者不忘记是罪 横批:选择性健忘症+中式禁评特权 罗马的社会层级,是最直接的 贵族>平民(自由民/公民)>债务奴隶 拥有投票权的自由民/公民确实是比奴隶的地位高 利出一孔模式下,层级划分是 皇上>奴才>编户齐民的 反而是“奴才”阶层,非但不必承担以上所有负担,甚至还包吃包住,当上了奴才也能算“民主” 所以鲁迅才会说,在酱缸社会里只有两种人,奴才和想做奴才而不得的人 谁的拳头大听谁, 唯独🙉欧美,没钱权怪自己,但🥰朝鲜塔利班 国内弱肉强食,国际弱者赞歌……双赢…
#zhihu #apple 👀中国人真的很博爱。
😶直面印第安人,为新大陆死去的土著奔走疾呼,争取还牙;同时觉得印第安裔优秀员工丑得辱华
👦🏾直面黑人,横眉冷对种植园主,痛斥列强黑船贸易扩张,“盎撒白左”的自由伪善被“我中华民族”辛辣揭露;同时俯首对黑人充满了尼哥印象与新纳粹灼见
😡直面亚裔,看不惯黄色人种遭歧视,誓要靠输出礼化被洋人禁锢的游戏规则;同时一口一个“鬼子”“偷国”“阿三”“土逼”“台蛙4v”
🇺🇦直面难民,善如水滴收留乌克兰少女,抗议特朗普单方面建墙;同时信奉弱肉强食,最崇拜的国家在普京

😔锐评印度,觉得种姓制度封建落后,为首陀罗的尊严权利挥斥方遒;同时户籍限制比国籍签证更多
😔锐评日本,对受美国剥削的日本社畜怒其不争,泡沫破灭曝出阴谋;同时自发坐享996 单休007,背一辈子房债消费税,背不动孩子和养老金
😔锐评韩国,觉醒到三星摆布下韩国男女水深火热,所谓反思电影、法庭工会毫无意义;同时被企业家剥削到叫苦不迭,更想挤进主旋律

📑看清疫情,为洋大人的死无限惋惜,为连付宝与西方政客的无能呼天抢地;同时被主关在铁丝门和91大8里,望绿化带望外宾急火,寸步难逃
🤔看清隐私与机密,特斯拉与苹果是世界公敌,间谍50w更是无处遁形;同时自己一丝不挂:后台是小米联网查杀、拼多多一键root。
💣看清国际战争,揭露美国是纯粹的油迷战贩;同时信奉大炮射程出真理,你死怪你没席位没关系
😂看清干涉内政,嘲笑霉菌仓皇撤离,对阿富汗人民深表同情;同时认为印泰是穷逼、朝鲜塔利班是反霸联盟 石油好兄弟

🔫看清枪支暴力,对每周枪击案格外上心,辛辣点评美式民主顽疾、分析美国人不懂灵活管理;同时对腊像善意跪祷外国天天零元购,小日降半旗
💰看清世界经济,认为资本产联正在崩溃,北约更是纸老虎,中国必为首富;同时死命存钱,不愿拉动自己的房产内需,恶意转变鹅爹信仰
⚽️看清日本足球,原来“赢我们”之心不死,毫无八嘎奥林匹克精神;同时让国足退钱,寄希望于民间结社
😋看清核子污水,日本莫须有 海洋国联有;同时不信IAEA和韩国的监测,争议WTO的劳动法,自以为能吃上御治菜,或者预制菜:请别分那麼細,旗下所长会统一拒检

👉指明美国,一切的不公与黑箱腐败都无处遁形,在讽刺、听墙与嘲笑中督促联邦加强制度透明,即便拿绿卡的早不是他们
🇪🇺指明欧洲,认为难民迷惑了幼稚楼矮的欧盟,抢夺了本地人的福报,小圣母养了太多懒汉;同时自己也有手有脚,手里的薪资福利却不如黑人难民
💸指明非洲,为非洲的建设风险投资,为提升巴铁的zz地位免签考察,即便地债泄洪有累卵之危
💰指明扶贫,满世界找补,盛赞在这方面我是国才是典范;同时让穷人别来帝都,带专别入市场,农逼不得领钱,审批都碍眼
📟指明芯片,精英神童们遥遥领先;同时创造力探索欲被碾压到一卡脖子就禁言,一松手又赢麻了

🌍直面环境、关心科技、关心政治正确、关心“武装直升机”...关心世界史上合理的一切,唯独没想过自己。 看透君国主义日本的伪善,为死人大义鸣冤,却害怕为路边正在倒地者说句人话。
😳啊...这是多么的无私,多么的守望相助!
duangsuse::Echo
#sql #ts Prolog 牛逼! 正确的关系式搜索+ 同时实现 parse 和 toStr 😱 #zhihu 灵感来源 e(E) -->{E = [I,Ea,Eb]}, %重写规则, 'eX'为优先级 %利用 链|e1(E) 括住内"*/" e1(Ea), op(I,"+-"), e(Eb); e1(E). e1(E) -->{E = [I,Ea,Eb]}, e2(Ea), op(I," */"), e1(Eb); e2(E). e2(X) --> number(X); ("(",…
#PLT #sql https://zhuanlan.zhihu.com/p/646479383

Z3-SMT 是SAT(可行性求解器)的增强版,即一种sympy 。比Prolog更擅长解数值,甚至能解数独(迫真 ,解决cargo的依赖版本(原神

from z3 import *
A, B, C = Bools('A B C')
# 创建一个求解器
s = Solver()

# 添加约束条件
s.add(Or(And(A, B), And(Not(A), C)))
# 检查是否存在解
if s.check() == sat:


Z3的API这么复杂,又要add check 又.model的, 不如和Keras做个联动,支持机器学习+逻辑编程好了。 哦,原来 state.add(x==1) 只能执行1次 不是flowgraph啊?
这API还真挺Pythonic
这种问题貌似Prolog不用限定类型都能解。 定义 Bool(A) 无非是为了重载,那And(bools) 有啥别的语意-即搜索范围呢? 强类型逻辑式编程?好奇怪的搭配


稍微对比几个同类项,都不会这么白象化逻辑式编程


#zhihu 上看到一些逆天观念,C的设计错误:

1:单返回值这个设计可能是受了数学上的f(x,y...)的影响
真的需要多返回值的时候,C就只能用指针搪塞一下了
2:连续不等式
如果 a > b > c, 则……
3: void不是类型

1. Go就支持func (ret, err) 。所以不仅调用难以组合,Err体系也给弄成错的,因为err!=nil时函数不可能有值
2. 写成 (a > b > c) 还是 (a>=x>=c) & (a~b)(x) ? 过了这个村, for(x) 和 x inbounds range 就不可能一致了
3. 数学没有void,所以我赞成省略类型=void

还有一些不逆天的C错误:

"\0" 不是数组,argv无法单作为值
赋值是表达式,而且允许
for(;b-c;) c+ --b; b--;//c+b-1, b-=2
强制转换语法 (T)+xx、类型前置,这个的影响非常深远,带来的麻烦无穷无尽
if, while, for 的小括号和大括号,switch break
for (i = 1; i <= 10; i++) ,这个 (1~10):[i] 也很毒瘤了
duangsuse::Echo
#design #plt 最近在整理的编程范式有点让我头疼…… 这个或许对学OOP有帮助吧: //行列状多态,就是说一个类型由 字典C=A+B 定义 ?? C A b1 Str - b2 Int //以上声明里没写,故需要另加构造器 ?? C Cat(name:Str, b1="demo") - b2 b1.(0).Int Camel(ver=0) b1 "Hi" - b2 0 这样的好处是 sealed,data class 都非常简单-甚至多种子类都语法一致,与…
昨天提到的头疼点,现在修好了,希望以后能实现吧

顺便读篇#zhihu 文吧 https://www.zhihu.com/question/40675600/answer/3310038891


>代数数据类型是所有高级特性的基础, 比如 0 = never, 1 = unit, 2 = bool.. NaN=void
>定义和类型以及积类型(sum prod), 所有类型就都可以组合出来。相同的 ADT 编码意味着这两个类型本质上相同

首先,你想用实例的个数表达「类型」? SQL Table 就是如此啊,但是有啥用
比如你想做DFS吗? 链表又对应哪种数字? 加和乘,只有在穷举里才算有用抽象吧?

你能说说Unit值为何优于void吗? 对kt而言,`nul?: return` 必须是表达式,`listOf<Unit> ` 也叫“有意义”
但这语法仍然是种层级混乱的错误,还不如让异常作为值

对于向量,相同的维度算是「本质上相同」,但对于Int-Str 之类的格式而言,「等价」有比靠信息量更准确的定义

>统一函数和方法调用,写程序就能一 '.' 到底

问题主要是class T 的耦合性和反射,如果用 impl T{} 和宏就没问题了,这么说py也很面向函数

不过,函数=方法是需要查重载表的,可能要扩充全局作用域
另外, match,for i {break} 都可以数据化为dict或takewhile

>HKT 作为高阶抽象, 表达能力极强, 能有效减少冗余代码.

是吗? Maybe<T>, [T Maybe]类型 vs "T?"
Result<T> vs 具有特殊assert方法的 "T?" 哪个实用呢

这个Fine/Fail 很适合TAB,但如果 fetch()!! ; f?.run{} 就能错误处理,谁会用 if let=Some?

说到底,Monad链还是和CPS走得很近,CPS,传函续,拿语法糖封装后 也终究是会产生“回调地狱”吧?比如在fold时要手动透传Monad这个"this"..

>Refinement Type 消除代码中无用的assert,还可以附带SMT

Ada就支持整数区间检查,我发誓你不会想写那种代码的
当然强类型typealias取代各种check是好的,尤其,对Web后端友好

>Dependent Type

翻译这个类型体操,还不如写 SWI-Prolog.org ,同样是“y=x”检查,但人家的bool运算能告诉你,具体有几个类型匹配约束

>First Class Continuation, Call/CC

闭包里break,kt是用inline的方法,我觉得这是唯一合理的实现,其他都是滥用过程式编程

传函续可以实现函数级线程(有栈协程), forEach{break()} 属于是没捕获整个调用栈,是异步遍历-cancelTask
ruby callcc 反而是在模拟longjmp(),是throw的一种底层实现

>Delimited Continuation
语言级别的 fork.. 好像线程池Dispatchers

Linux滥用fork&execve 最初是因为pthreads不稳定, 说实话进程隔离除了防崩外,在有GC的语言里该式微了
至少MapReduce(Promise.all)和node不依赖多进程

传函续比调用栈优越的一点是,除了能实现yield(调用式协程) 它也是不依赖OS内核的线程
可惜是kt和rs的实现还不如Go简洁,kt更是把 launchThread.join() 玩得亲妈不认识了,非常地C++呢

所以,这些和 Algebraic Effects 有什么关系?数学递等式是小学内容吧? 还是说DFS深先遍历是数值算法?
蹭热度也要有限度的吧,我是说CS+Math概念股为啥这么不搭调。 CS人也要攀关系吗?

程序需要证明? 这和IT学生,用自己那几张电子表格去定义现实世界的「用户」一样逗, 还有那个被AI突破的 NLP领域,哦, 原来人类都是先学结构化语法,才有思维逻辑的? 倒果为因。

>effects能实现错误路径

py里用yield Err 也能实现catch,实际上js async最初就是这么来的
Java SEH <此设计< runCatching

这个catch 是在语句级实现了OOP class 注入函数的灵活性,我不觉得能inline有啥大不了的
Kt coro 在suspend前也不会创建状态机,但这个 effect f()->r 呢只是 open fun 的另一种写法,它不涉及闭包

作为函数的类型化,effect明显优于Monad和subtyping,但这里方向错了
把异常和协程混一起,最终也只会发现异常路径除了报错就是默认值,不值得作为流控,而且async任务也不支持0开销

第一点参数注入,OOP是基于class Context,对框架和DSL更自然,算是因祸得福,笨有笨的好处

『THE WORLD』是有进程级支持的,如果没fork不方便调试器重开的话,把『CRIU』移植到gdb上
比让编程语言越俎代庖强,不就是保留个调用栈的事,很新吗? syscall和线程调度都在做,知道原理就够了,老模型新应用嘛

>Partial Evaluation

Rust和Crystal都以0开销为卖点,C++则支持template和 constexpr int f() 两种范式的宏
常量折叠或至少内联,姑且是普遍的「分段求值」了,八成编译器并不包含源语言的运行时,也不支持Lisp qquote式的「符号作为值」

TS, D的enum T=f() 貌似更符合应用,但我反对创建类型体操和值“两门语言”
这样比reflect或codegen强,也曾是弱类型的专利,很好理解,因为那些垃圾静态语言连心智模型(简洁的AST)都没有,也不关心JSON和多态struct的绑定,只想着新语言能编译了

明明能“映射到目标语言”,却无法解释它,是很奇怪的事情啊! 尤其是要映射为“原创的”栈机或IR调用图。单独的编译步骤,算是蠢的JIT缓存吧

另外,py里很容易同时实现执行+翻译 双语义:https://github.com/duangsuse-valid-projects/TkGUI

btw. #js React #dalao
https://overreacted.io/algebraic-effects-for-the-rest-of-us/
^如果catch 能返回给throw会怎么样呢? 这类似依赖注入。 我想了会,觉得还是OOP扩充this.fun 比不透明地传递catch要好

https://overreacted.io/goodbye-clean-code/
^如何给SVG rect, arc. class Shape{} 开发编辑器? 不知道继承或接口的人为4个点加四个fun,然后组合为9宫格 .. 但他们赢了,因为团队比可维护性重要!

中国的精英主义,和普世的个人主义的主要区别, 是「是否需要向别人,解释自己的英明决策」, 这涉及人权vs工具人的不同。
爱因斯坦和费曼,并不是中式意义的精英

再谈到“战争贩子”的伪善,同样是种避重就轻: 不谴责宣战的慈禧,反而说练兵强武的李鸿章是资本家; 不反省自己没把对方当人,反说他们蠢,不可「教化」

降低重复的抽象、对特例的适配性,都是必须的。 因为,代码都是多余的,只有心智模型和设计是意义,而只有完全删掉重复才是专业性的语言

https://github.com/denysdovhan/wtfjs/blob/master/README-zh-cn.md
^#js 的 BaNaNa 等名梗,还要注意: .1+.2!=.3, [1,20,3].sort() 是按字符排序 🤪