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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#sql DFS搜索 像素图填色 in Prolog

btw. fill(_,X) 是 “从任意一点探索区域X , 一共能收集到多少X”
v(P,0) : 查询颜色是0的P=[X,Y]
conn([2,1], P1) : (2,1)=0 四邻里 0值格的座标们

不知为何很慢
看起来好像简短了,实际只是省掉 if 和解构的代码量 😒


有趣的是,conn(四邻) 是基于 |X-x|+|Y-y|=1 的参数方程(GL常用),而非 x+1,y+1 直接迭代,所以 dfs :- C=conn(A),dfs(C) 就必须写成 conn(A,C) 的约束,尽管C只是A的“过滤结果”, 对C的穷举确实不像“返回值”能做到的

https://www.swi-prolog.org/pldoc/doc/_SWI_/library/lists.pl
关系式和SQL一样支持查询结果 distinct(unique)
之前用 findall(X, Func,R) 莫名出问题,也用不了lambda ,累死了
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实现