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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
#math #plt 公开课. 是仿造数学语言 https://github.com/DSLsofMath/DSLsofMath Introduction: Haskell, complex numbers, syntax, semantics, evaluation, approximation Basic concepts of analysis: sequences, limits, convergence, ... Types and mathematics: logic, quantifiers…
#typescript #TT 科普 TypeScript Type-Level Programming - lsdsjy的文章 - 知乎
https://zhuanlan.zhihu.com/p/54182787

TS是支持静态类型的JS。有 number,string 等值,也有常量作 literal type: number, .. "div" "body"..
<K extends keyof ElementMap> :R=Map[K] 是入门级子集定义吧!TS里{a:1,b:""} 的类型都是这种表。此外 {[K in keyof T]: } 可作转化
这个表里[num,str] 是 num|str 的意思,因此若有 P={a:num,b:str} 则 P[keyof P] ,就是并集类型。类同{}类型, {[K in KS]: }[KS] 给并集list 作转化

let v: (() => void) extends Function
的类型是true(lit type). 以下 is=extends
type T={a:num,b:str} //v:{a:Num|never} ,never=kotlin.Nothing |的不动(0值)点
let v:{[K in keyof T]: T[K] is number? T[K] : never }[keyof T] //收集并转换

子类型中 Int is Num, Num is Num 。is是 <= (never不大与任何类型)的意思,如何实现(=)呢?
type Equal<T, U> = T is U ? (U is T ? true : false) : false //TS类型上无&& || !
let v: Equal<Func, Function> // v: true //最后一遍:这是编译期可知

TS只支持 recursive mapped types,“递归函数”只能返回 dict。设想 T={xx: T|Promise<U>} ;把T内所有Promise.resolve 的函数类型是啥?
type Unwrapped<T> = { [K in keyof T]: T is Promise<infer U> ? U : Unwrapped<T> }
type Unwrap<T> = (wrapped: T) => Unwrapped<T>


这里也以infer语法来引入新的 typevar <U> ,算是某种意义上的“模式匹配”。在Haskl 对 ADT 的值作模式匹配;在这儿,我们对有着“代数类型 类型”的TS类型作模式匹配。
ADT 有普通的函数状 data constructor;Type 也有 type constructor,比如 Promise就是 T->Promise<T>的“类型函数”。它是 lit,list,dict 外第三种组合方法
type:
Nat<N> = Zero | Succ<N>
Zero = void; type Succ<N> = { pred: N } //0, +1
_1 = Succ<Zero>
_2 = Succ<_1>

IsNat<T> = T is Nat<infer N> ? true : false
q1 = IsNat<_2> // true
q2 = IsNat<number> // false
IsNatIsNat = IsNat<IsNat> //err: IsNat require param


然后是:
一开始的时候,我把 Coq induction 和数学归纳法搞混了。要用数学归纳法证明一个命题 P,你需要先证明一个基础步骤 P(0),然后在 P(n) 成立的情况下证明一个递推步骤 P(n+1)。但是在 induction 里面没有“基础步骤”和“递推步骤”之分,甚至 induction 产生的小目标的数量都不一定等于2。之后,我发现你可以把 induction 理解成数学归纳法的一种扩展。数学归纳法是作用在自然数上面的,而自然数是一种递归定义的归纳类型:
Inductive nat : Set :=
| O : nat
| S : nat -> nat.

Lemma len_repeat: --n(s rep k)=k*n(s)
forall s n,
String.length (repeat s n) = n * String.length s.

intros s n. induction n
(s rep 0)=0*n(s)—无归纳假设, 下递归定义,有.
(s rep N+1)=(N+1)*n(s)

Lemma len_app_plus: --n(s+s1)=n(s)+n(s1)
forall s1 s2,
String.length (s1 ++ s2) = String.length s1 + String.length s2.
要证明 len_repeat,我们就要对 n 进行归纳,因为 repeat 是定义在 n 上的一个递归
证明 len_app_plus,就对 s1 进行归纳,因为 String.length 在每次迭代中会消耗字符串的第一个字符。当你对 s1 进行归纳的时候,第二个情况会是 s1 = String char s,这就对应了 String.length 的定义


作者:陈乐群
链接:https://zhuanlan.zhihu.com/p/54164515 能够看出来写得很好,还带FAQ..可对外道入门逻辑式还不够唉

#rust #PLT 自由程续-阴阳谜题 手动脱call/cc解
Rust 阴阳谜题,及纯基于代码的分析与化简 - 知乎用户FGAvTw的文章 - 知乎
https://zhuanlan.zhihu.com/p/52249705
#Python 5行yield解 https://zhuanlan.zhihu.com/p/43207643

如何制造SCP018 - 圆角骑士魔理沙的文章 - 知乎 — 函数式尾调用优化
https://zhuanlan.zhihu.com/p/43163820
形式验证、依赖类型与动态类型 - 老废物千里冰封的文章 - 知乎 讲了 Nullable,静态长Vec,运行时报错的type兼容
https://zhuanlan.zhihu.com/p/50792280
#python #code #telegram #tool 修正tg desktop 的复制成员名太长
#cg #python
要展示100个人头像的最好方法是瓷块式拼合,再在上面盖层mask,像"Meta","Google"大字样,使部分头像变黑,但一些人的头像就比较黑,如果能让它们处在mask更黑的地方,岂不更好?

imwall.py mask.png *.png 首项宽高很低,其后图宽高统一,试以lum(img)为目标将其后图像瓷砖排列。

class 砖图:
def 入(im,网)#以网格项(x,y,w,h) im.crop 出列表,记下i-xy对应
def 返(a)#paste 回旧图原位

如此我们就能以网格座标来处理一张图,比如滤镜五颜六色。但 网(ims,m=columns) 有两个版本
mask 里w=h=1 ,只要提供宽度切出每像素,以与下者对应
*.png 里只用返(),需要视每张wh来布局,因此网应是返()的参数

如此就能按 mask 组合能补满其w*h的 png 们,sortMerge(a,b,f):把b按f序对应到a索引
sort(保留a索引号,f) 再把 sort(b,f) 以a位置填充即可

以此顺序调用返(),输出里mask高亮(f=lum)位置就是较白头像

#js
漩涡扭曲位图里半径l的区间,需在xy建立圆心座标系,从 xy-l 迭到 xy+l 算与xy差的 sqrt,atan2 确定距离分组再以在圆弧度 排序像素不难,然后 push(shift(扭力)) 取圈重排再画回去

其实直接支持 xy=2l 的2D数组,靠与其索引 i-l 的角距,即得 xy和旋转后的 ai=a[ti] 映射关系,不必每次创建许多分组和数组只为旋转圆内圈;直接生成 t[y*w+x] 存储旧位 如此利用 getImageData.data 更方便
《论 #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改乌龙了次
#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
Forwarded from 层叠 - The Cascading
Python 的包管理站点 PyPI 暂停了新帐号和包的创建,原因是数位管理员告假,而目前的恶意帐号/包数量太多以致现有管理员无法处理。

https://status.python.org/incidents/qy2t9mjjcc7g

[感谢 夜坂雅 提供此消息。]

#Python #PyPI
Forwarded from 层叠 - The Cascading
Python 指导委员会 (Steering Council) 计划接受 PEP 703,并正在策划工作细节。

Python 指导委员会的远期计划是让 GIL 移除出 Python(而非并行保留 GIL 和 no-GIL);但在这期间,委员会也希望处理好后向兼容性问题,防止像 Python 2 到 Python 3 这样的兼容性惨案再次发生。

discuss.python.org/~

thread: /4255

#Python
Forwarded from Leetao’s Space (Glittering)
📖主题 停止编写 __init__ 方法以优化Python类设计

🚩重点

• 在Python 3.7之前,__init__ 是创建数据结构的默认方法,但存在多重问题。
• 使用dataclass、classmethod和NewType可简化对象创建及增强类型安全。
• 通过class methods方便用户创建对象的同时,避免了不必要的复杂性和潜在错误。

结论 推荐使用dataclass和classmethod构建Python类,以确保对象有效性和便于维护,提高代码质量。

🏷️标签 #Python #编程设计

🔗链接 https://blog.glyph.im/2025/04/stop-writing-init-methods.html
🦄1
Forwarded from 小红书一瞥
我承认Python水平不如战鹰🤡
#编程 #Python #围棋
Forwarded from Solidot 纯净版
Python 纪录片上线
#Python

由 CultRepo 制作的 Python 语言纪录片《Python: The Documentary | An origin story》上周在 YouTube 上线,观看量超过了 18 万次。Python 语言最初是荷兰程序员 Guido van Rossum 的“课余”项目,它简洁易读的特性最终令其从众多编程语言中脱颖而出,成为最受人喜爱的语言之一,成为驱动 AI、数据科学以及科技巨头所开发软件使用的语言。出现在纪录片中的人物包括了 Guido van Rossum、Travis Oliphant、Barry Warsaw 等,它讲述了 Python 的崛起、社区驱动的演变、几乎导致分崩离析的冲突,以及这门语言对世界万物的影响。
www.youtube.com/watch?v=GfH4QL4VqJ0
Forwarded from 层叠 - The Cascading
Python 基金会因「坚持推行 DEI」放弃美政府 $1.5M 捐款。

- Python 基金会 (PSF) 发文如是说。DEI 指多元化、平等及包容 (diversity, equity, inclusion)。
- 捐款来自美国政府国家科学基金会 (NSF) 关于开源生态系统的项目,起初由 Python 基金会职员组织申请。
- 捐款方美国政府要求 PSF 不开展促进 DEI 的工作,否则可能收回已发放捐款。

pyfound.blogspot.com/~

#Python #US