duangsuse::Echo
#Windows #powershell #code https://gist.github.com/Trumeet/5b36d7af84c73160f110b27d4e759db0 草,还能这么玩(shell 调用 extern 啊, Add-Type -MemberDefinition C# 代码) $ShellAbout = @' [DllImport("Shell32.dll")] public static extern int ShellAbout(IntPtr hwnd, string szApp…
#Java #code #rewrite https://gist.github.com/duangsuse/59bfe0cc0875a095ea88fac40717e1f5#file-cosmic-java-L193
帮鱼塔改造了一下他之前随手写的一个…… 感觉自己对 Java 了解还不深,必须经常学习一个。
[堆污染_掌心童林-CSDN博客](https://blog.csdn.net/palmtale/article/details/9302711)
[如何使用 Java 泛型来避免 ClassCastException - java宝典 - 博客园](https://www.cnblogs.com/java-bible/archive/2021/01/18/14293646.html)
[SafeVarargs的用法 – 宿宝臣的博客](http://softlab.sdut.edu.cn/blog/subaochen/2017/04/safevarargs%E7%9A%84%E7%94%A8%E6%B3%95/) 这几个 #typing #plt #recommended #blog #DontKnow
帮鱼塔改造了一下他之前随手写的一个…… 感觉自己对 Java 了解还不深,必须经常学习一个。
[堆污染_掌心童林-CSDN博客](https://blog.csdn.net/palmtale/article/details/9302711)
[如何使用 Java 泛型来避免 ClassCastException - java宝典 - 博客园](https://www.cnblogs.com/java-bible/archive/2021/01/18/14293646.html)
[SafeVarargs的用法 – 宿宝臣的博客](http://softlab.sdut.edu.cn/blog/subaochen/2017/04/safevarargs%E7%9A%84%E7%94%A8%E6%B3%95/) 这几个 #typing #plt #recommended #blog #DontKnow
#cplusplus #PLT #typing 支持用 concept 实现 Sum Type 了...
欸这不是 overload 吗,所以... 是用了 constexpr 优化啊
template<typename T>
concept Sum same_as<A,T> || same_as<B,T>;
template<Sum T>
void check(T status) {
if constexpr (is_convertible_v<T, A>) {}
}
欸这不是 overload 吗,所以... 是用了 constexpr 优化啊
GitHub
whatever/sum_type.cpp at master · Ray-Eldath/whatever
Scala, Cats, Kotlin, JMH, x86, MIPS, Modern C++, and more... - whatever/sum_type.cpp at master · Ray-Eldath/whatever
#typescript #typing Pick,Omit..
https://github.com/codehz/tjs/blob/%F0%9F%92%A5/tjs.d.ts#L60
噢原来是 unification .. T extends'x{infer rest} ' ... 不愧ts 强类型(其实术语是渐进类型 gradual
https://tttttt.me/im_RORIRI/1647 tsc补齐游戏
https://github.com/sinclairzx81/typebox
https://github.com/codehz/tjs/blob/%F0%9F%92%A5/tjs.d.ts#L60
噢原来是 unification .. T extends'x{infer rest} ' ... 不愧ts 强类型(其实术语是渐进类型 gradual
https://tttttt.me/im_RORIRI/1647 tsc补齐游戏
https://github.com/sinclairzx81/typebox
GitHub
tjs/tjs.d.ts at 💥 · codehz/tjs
TJS = tinyc compiler + quickjs. Contribute to codehz/tjs development by creating an account on GitHub.
duangsuse::Echo
这类实用性较低的知识,是否希望解释名词
结束洗稿。感觉可能需要一堆正则重构工具,我不想看到「一个一个一个」这样的量词🌶
😅开个玩笑啦,本频道以「编程」原创内容为主,这些只挑重点
呃既然你们觉得这技术也想了解,我之类弄mkey了解了些 讲。没博客也是我的失败,过几个月大概。
关系式 1=1 成立 1=2 不成立
a=1 和 1=a 成立
成立得解,于是程序=目标Goal=等式的所有解
注意,等号是没有方向的。在 #js 有 [x,y]=p 和 p=[x,y] ;看起来是关系式,其实等号左是模式pat、右值expr,关系式里,变量是值、含变量数组[a,1]=[1,a] 也是值-js里 [x,y]就是死模式
(append-out "a" x "abc") Yes. x="bc"
因为『未知量』也是值。
def (appendo a b c)
b=''&c=a |{x r. [x,r]=b&this([a,x],r,c) }
其中this是递归 ab皆链表
如a=c='?' 则成立
如a='1' b='2' 则 f(12,'',c)=a ,知道abc里任何两项都能推完-除非 f('a','','?a')={c!=a} No.
为啥变量也是值?因为语义不是「重写化简:(1+2)=3」而是归一 #fp unification ,即我开头说的 a=1&1=a ,成立, a=1|a=2 ,在不同上下文-各自成立。KV上下文{x r. goal}就是结果,它没有求值 只有a=b=c 相等性传播。这显然涉及数组解构(unify-[a]=[1])、再构(reify/grab v from ctx),别忘了c=12的例子 有1个x变量,c=123 就有两个x 在回溯时=b[0]
实现细节都讲了,式Goal如=, &| {a b.}是组合其它式,得惰性K=Symbol/唯一str -V流的,一般 &会用eachNext([1],[2])=12 做,|就是并联,然后unify "abc"=[x,r]/grab "${x}bc" 都是deep的。un和deepEq类似但能给变量赋值,un失败得null。有变量 a:b,b:c 则 get(a)=c; get(2)=2
可以去 https://github.com/tca/veneer 试试关系式编程。因为相等关系能构成 [],{},"" 数据- 它们都是“算式得出”的,关系式可以实现列表处理和判定-但不能 while(1)print 这种“动作语义”
纯函数式(不含Scheme,rkt 等)也没有,但二者不同。
它可以用于类型推导 #kotlin #ce #typing
fun<T> T.let(op:(T)->R): R 里,类型参数没有上下界,只有「确定性」-每处T不能同时是Int,Date
因此在检查时,第一遍 receiver T 提供T:Int,ParamType 实例 (T)->R 试把自己的 T 与之归一,比如 Int|Number=Number ;第二遍检查 Int. 仍符合 Number.let 的签名,可以调用。
如果是 fun<T> Any.asType():T ,第一遍T没有信息(参数的-类型表达式 里没有使用) 也非T:Any ,推导就失败了;或者推导出 T=Int|Date=Any ,查不到重载,第二遍检查报错
T在编译期是和语法树1:1的data(var actual:Type?),所以 fun rec(x:T)=rec(x-1).plus(1) 也推不出来/不该想那么多
而 val n=1 写明就是 <T>val n:T=1 ,T=typeof 1 ,如写 (n+2)且(+):TT->T 则也有 {T R. n=1 :T & (n+ 2:T):R } 关系式
qunie就是鸡兔同笼这类问题,TDD 是面向🐒跳键盘编程(确信..其实是先写检查),可以穷举也可上关系式,总之mk是挺直白的,确实是pdf界一股清流
https://tttttt.me/ice_learn_arend/199 那么我们来看实际应用
\func wow {U : \Type} {T : U -> \Type} (A B : U) (a : T A) (b : T B) : Nat => zero
wow(U:T F:U->T) AB:U a(FA) b(FB) :Nat=zero
t1(AB:T) x:A y:B =wow ABxy --fail
t2(AB:T) x:A y:B =wow {_} {\. _} A B x x
是啊,是为什么呢🧐 又是怎么用呢
一说SQL和mk同类,只不过是查询既有关系(而且必需SELECT a,b或*),此外有 swi-prolog.org
这也是我发投票 https://tttttt.me/dsuse/17241 的原因
比如 #zhihu 某专栏的作者
浅尝 miniKanren,传说中的逻辑式编程(二) - 吴烜xuan三声的文章 - 知乎
https://zhuanlan.zhihu.com/p/372280127
如果不是因为科普的萎靡,他本来可以做更有价值的事,这难道不值得所谓的PLT人三思吗? #statement
我到底是一个一个一个什么啊(全恼)🥱
😅开个玩笑啦,本频道以「编程」原创内容为主,这些只挑重点
呃既然你们觉得这技术也想了解,我之类弄mkey了解了些 讲。没博客也是我的失败,过几个月大概。
关系式 1=1 成立 1=2 不成立
a=1 和 1=a 成立
成立得解,于是程序=目标Goal=等式的所有解
注意,等号是没有方向的。在 #js 有 [x,y]=p 和 p=[x,y] ;看起来是关系式,其实等号左是模式pat、右值expr,关系式里,变量是值、含变量数组[a,1]=[1,a] 也是值-js里 [x,y]就是死模式
(append-out "a" x "abc") Yes. x="bc"
因为『未知量』也是值。
def (appendo a b c)
b=''&c=a |{x r. [x,r]=b&this([a,x],r,c) }
其中this是递归 ab皆链表
如a=c='?' 则成立
如a='1' b='2' 则 f(12,'',c)=a ,知道abc里任何两项都能推完-除非 f('a','','?a')={c!=a} No.
为啥变量也是值?因为语义不是「重写化简:(1+2)=3」而是归一 #fp unification ,即我开头说的 a=1&1=a ,成立, a=1|a=2 ,在不同上下文-各自成立。KV上下文{x r. goal}就是结果,它没有求值 只有a=b=c 相等性传播。这显然涉及数组解构(unify-[a]=[1])、再构(reify/grab v from ctx),别忘了c=12的例子 有1个x变量,c=123 就有两个x 在回溯时=b[0]
实现细节都讲了,式Goal如=, &| {a b.}是组合其它式,得惰性K=Symbol/唯一str -V流的,一般 &会用eachNext([1],[2])=12 做,|就是并联,然后unify "abc"=[x,r]/grab "${x}bc" 都是deep的。un和deepEq类似但能给变量赋值,un失败得null。有变量 a:b,b:c 则 get(a)=c; get(2)=2
可以去 https://github.com/tca/veneer 试试关系式编程。因为相等关系能构成 [],{},"" 数据- 它们都是“算式得出”的,关系式可以实现列表处理和判定-但不能 while(1)print 这种“动作语义”
纯函数式(不含Scheme,rkt 等)也没有,但二者不同。
它可以用于类型推导 #kotlin #ce #typing
fun<T> T.let(op:(T)->R): R 里,类型参数没有上下界,只有「确定性」-每处T不能同时是Int,Date
因此在检查时,第一遍 receiver T 提供T:Int,ParamType 实例 (T)->R 试把自己的 T 与之归一,比如 Int|Number=Number ;第二遍检查 Int. 仍符合 Number.let 的签名,可以调用。
如果是 fun<T> Any.asType():T ,第一遍T没有信息(参数的-类型表达式 里没有使用) 也非T:Any ,推导就失败了;或者推导出 T=Int|Date=Any ,查不到重载,第二遍检查报错
T在编译期是和语法树1:1的data(var actual:Type?),所以 fun rec(x:T)=rec(x-1).plus(1) 也推不出来/不该想那么多
而 val n=1 写明就是 <T>val n:T=1 ,T=typeof 1 ,如写 (n+2)且(+):TT->T 则也有 {T R. n=1 :T & (n+ 2:T):R } 关系式
qunie就是鸡兔同笼这类问题,TDD 是面向🐒跳键盘编程(确信..其实是先写检查),可以穷举也可上关系式,总之mk是挺直白的,确实是pdf界一股清流
https://tttttt.me/ice_learn_arend/199 那么我们来看实际应用
\func wow {U : \Type} {T : U -> \Type} (A B : U) (a : T A) (b : T B) : Nat => zero
wow(U:T F:U->T) AB:U a(FA) b(FB) :Nat=zero
t1(AB:T) x:A y:B =wow ABxy --fail
t2(AB:T) x:A y:B =wow {_} {\. _} A B x x
是啊,是为什么呢🧐 又是怎么用呢
一说SQL和mk同类,只不过是查询既有关系(而且必需SELECT a,b或*),此外有 swi-prolog.org
这也是我发投票 https://tttttt.me/dsuse/17241 的原因
比如 #zhihu 某专栏的作者
浅尝 miniKanren,传说中的逻辑式编程(二) - 吴烜xuan三声的文章 - 知乎
https://zhuanlan.zhihu.com/p/372280127
如果不是因为科普的萎靡,他本来可以做更有价值的事,这难道不值得所谓的PLT人三思吗? #statement
我到底是一个一个一个什么啊(全恼)🥱
GitHub
GitHub - tca/veneer: miniKanren in the browser
miniKanren in the browser. Contribute to tca/veneer development by creating an account on GitHub.
duangsuse::Echo
#ce #plt 带步骤的四则计算器。递归逆波兰。22行代码 浅先=`;=;+ -;* / %` 流=(a, _s=[...a].values())=>()=>_s.next().value 切2D=(s,sp0,sp1)=>s.split(sp0).map(s=>s.split(sp1) ) {let t={},k; 切2D(浅先,';',' ').forEach((x,i)=>{for(k of x)t[k]=i}); 符深大=t} 符链=(s,l)=>{let a=[],add=x=>a.push(x)…
#plt #typing #kotlin #java 常见类型系统
从变量/参数的赋值兼容力(即子类成员量)升序:
对函数
而检查期 1,"str" 和
类型的强弱看隐式转换,动静即语法有无分出“编译期已知项”如class结构,类型推导能让静态类型更智能。
现在你已经知道「类型标记」只是仅编译可知,用来
类型的交集&(有
+*类型即分支组合类型,与其配对的是不兼容子类型的系统,那些系统里元组/具名数据类型也算”类型“,但有些奇技(如typeclass函数重载)来解决OOP里有或没有的问题。
A&B 成员集小,兼容力比A或B大,但在严谨的OOP子类派生里,只有 A|B 被用于多态(函数覆盖:多义, Any null?),而交集参数仅混合接口。
感觉有点好笑,我一个看编程语言的,话却越来越少了。 以前很喜欢技术,但感觉越学知识越少了。
从变量/参数的赋值兼容力(即子类成员量)升序:
Any<任何类型<Nothing
,类型 T 比T?兼容力强,因其不含null,error():Nothing
可容任何类型,因后续计算中断。对函数
(Any)->R
连Any都能收,当然是 (Int)->R
,也即 Fun<in T, out R>
,型参值 T=Int 反接受小的 T=Any。是消费-生产 in=?super,out=?extends "通配符",但可直接在写<T>
时指定仅在 in/out 位置,及 Array<out Int>
变量R在两个函数类型里唯一,都来自<T,R>型参列表,对R的每位置归一可推导出R再检查。可以发现,(T)->R
和 Fun<T,R>
都是从类型组合出类型的语法,而检查期 1,"str" 和
Int,String
型变量都是类型(Type.can
haveSubtype),a[0]=1
时问 Array<Any>.set(Int,Int)
是否 params.all{it,i-> it.can(arg[i].type) }
,像在执行一般检查每条算式,能提早报错并加速内存分配。类型的强弱看隐式转换,动静即语法有无分出“编译期已知项”如class结构,类型推导能让静态类型更智能。
现在你已经知道「类型标记」只是仅编译可知,用来
chk(AST.FCall): i=0~nArg; scope["print"].arg[i].can(call.arg[i].type )
的 Type.can(Type):Bool
实例,正如 Python 的 from typing import TypeVar
。Map<K,V>
也是编译期调用,只是class 里创建型参<A,B,..>写法和函数前不同,不是”特殊语法“。类型的交集&(有
where T:A,T:B
"交集上限" )并集|(兼容操作支持俩类型,如 Any? vs Any,AST vs Call If For):子类&父类=子类, A&B=Nothing 、A|B=最近共同超类+*类型即分支组合类型,与其配对的是不兼容子类型的系统,那些系统里元组/具名数据类型也算”类型“,但有些奇技(如typeclass函数重载)来解决OOP里有或没有的问题。
A&B 成员集小,兼容力比A或B大,但在严谨的OOP子类派生里,只有 A|B 被用于多态(函数覆盖:多义, Any null?),而交集参数仅混合接口。
感觉有点好笑,我一个看编程语言的,话却越来越少了。 以前很喜欢技术,但感觉越学知识越少了。
#py 周刊
Python,YAML 的缩进为何比C系优秀
4、strictyaml:类型安全的 YAML 解析和校验库
用于解析 YAML 的受限子集,拒绝解析丑陋的、难以阅读和不安全的 YAML 简写,有严格的标记验证和直接的类型转换
TOML 文件格式有什么问题?
“改进的” INI 文件,是 pip 推荐的配置文件格式。但连 TOML 的作者也认为它是一种糟糕的格式!
12、Python Fire:自动生成命令行接口
谷歌开源的一个用于生成 CLI 的库,Github 25K star。这篇文章介绍了它的一般命令、组合命令、链式命令、复杂命令等用法。
5、facefusion:更先进的换脸工具
最新开源的一个人像换脸库,star 涨得飞快!(star 6.9K)
#tool 把网页转换成 Markdown 格式存储
一站式 LLM 底层技术原理入门指南
基于数学点乘的 Transformer原理引言
7、instagraph:将文本内容或 URL 转换为可视化的知识图谱
可以提取复杂信息中的名词实体,生成它们的关系图谱。使用了 GPT-3.5,以及 Flask
该以一种怎么样的心态对待开源
🐎 网易云音乐 Tango 低代码引擎正式开源!
文章集 Writing an #OS in Rust , 从linker-BIOS ABI到算法
Thorium.rocks : Chromium 改版
10、使用 Django 和 HTMX 开发一个数据库搜索项目
一篇详细的 Django 项目教程,实现一个全栈的项目。文中有作者的教程视频。
11、异步 SqlAlchemy 和多数据库管理
利用 asyncio 和 SqlAlchemy 库,文章探讨了如何有效地连接和管理多个数据库,获得可扩展且具有弹性的架构。文章介绍了两种实现方法。
前端新轮子 Nue JS,作者称要打造全新的 Web 生态 [docs]
tornado Web 框架 的协程调度原理
14、为什么 Python 代码在函数中运行得更快?
代码执行的工作原理是什么?如何测试与优化 Python 函数的性能?
13、我最爱的解 LeetCode 问题的 Python 技巧
#algorithm 玩转遗传算法
遗传算法(Genetic Algorithm)是一种受生物进化理论启发的优化算法,用于解决复杂的搜索和优化
9、调试 Python 中正则表达式的灾难性回溯
作者使用 py-spy 定位一个 CPU 100% 占用问题,找出了罪魁祸首的正则表达式
Python abc 类型提示的轻量化:接口
Python,YAML 的缩进为何比C系优秀
4、strictyaml:类型安全的 YAML 解析和校验库
用于解析 YAML 的受限子集,拒绝解析丑陋的、难以阅读和不安全的 YAML 简写,有严格的标记验证和直接的类型转换
TOML 文件格式有什么问题?
“改进的” INI 文件,是 pip 推荐的配置文件格式。但连 TOML 的作者也认为它是一种糟糕的格式!
12、Python Fire:自动生成命令行接口
谷歌开源的一个用于生成 CLI 的库,Github 25K star。这篇文章介绍了它的一般命令、组合命令、链式命令、复杂命令等用法。
5、facefusion:更先进的换脸工具
最新开源的一个人像换脸库,star 涨得飞快!(star 6.9K)
#tool 把网页转换成 Markdown 格式存储
一站式 LLM 底层技术原理入门指南
基于数学点乘的 Transformer原理引言
7、instagraph:将文本内容或 URL 转换为可视化的知识图谱
可以提取复杂信息中的名词实体,生成它们的关系图谱。使用了 GPT-3.5,以及 Flask
该以一种怎么样的心态对待开源
🐎 网易云音乐 Tango 低代码引擎正式开源!
文章集 Writing an #OS in Rust , 从linker-BIOS ABI到算法
Thorium.rocks : Chromium 改版
10、使用 Django 和 HTMX 开发一个数据库搜索项目
一篇详细的 Django 项目教程,实现一个全栈的项目。文中有作者的教程视频。
11、异步 SqlAlchemy 和多数据库管理
利用 asyncio 和 SqlAlchemy 库,文章探讨了如何有效地连接和管理多个数据库,获得可扩展且具有弹性的架构。文章介绍了两种实现方法。
前端新轮子 Nue JS,作者称要打造全新的 Web 生态 [docs]
tornado Web 框架 的协程调度原理
14、为什么 Python 代码在函数中运行得更快?
代码执行的工作原理是什么?如何测试与优化 Python 函数的性能?
13、我最爱的解 LeetCode 问题的 Python 技巧
#algorithm 玩转遗传算法
遗传算法(Genetic Algorithm)是一种受生物进化理论启发的优化算法,用于解决复杂的搜索和优化
9、调试 Python 中正则表达式的灾难性回溯
作者使用 py-spy 定位一个 CPU 100% 占用问题,找出了罪魁祸首的正则表达式
Python abc 类型提示的轻量化:接口
from typing import Protocol
@typing.runtime_checkable
class DuckLike(Protocol):
def walk(self, to: str) -> None: ...
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#20:为什么代码在函数中运行得更快?
🦄文章&教程
1、三种对 Python 作基准测试的方法
2、舍弃 Poetry 和 PDM,切换成 Hatch
3、TOML 文件格式有什么问题?
4、用 Python 玩转遗传算法
5、现代 Python 的类型提示:Protocal 类
6、tornado 的协程调度原理
7、可视化 CPython 发布过程
8、如何用 PyObjC 与 Apple Vision 框架作文本识别
9、调试…
Python 潮流周刊#20:为什么代码在函数中运行得更快?
🦄文章&教程
1、三种对 Python 作基准测试的方法
2、舍弃 Poetry 和 PDM,切换成 Hatch
3、TOML 文件格式有什么问题?
4、用 Python 玩转遗传算法
5、现代 Python 的类型提示:Protocal 类
6、tornado 的协程调度原理
7、可视化 CPython 发布过程
8、如何用 PyObjC 与 Apple Vision 框架作文本识别
9、调试…
#plt #typing infer https://zhuanlan.fxzhihu.com/p/634217295
https://zhuanlan.zhihu.com/p/712419355
今年8月发的。其实猾为内部还是有支持一些不那么抽象的知识分子的。 我觉得讲得比某些知乎大佬简单明白,
这方面靠中国的社区文化,还是不如真专家讲,该推荐还是得推荐。
https://zhuanlan.zhihu.com/p/712419355
今年8月发的。其实猾为内部还是有支持一些不那么抽象的知识分子的。 我觉得讲得比某些知乎大佬简单明白,
这方面靠中国的社区文化,还是不如真专家讲,该推荐还是得推荐。
FxZhihu / Fixup Zhihu
类型检查:时常被忽略的编译器组件 | FxZhihu
原文来自微信公众号“编程语言Lab”:类型检查:时常被忽略的编译器组件 搜索关注“…