#plt #bing #talk 不会思考它没学过的资料..
我想写类于Java 类型系统的类型检查器,请提供类型的数据模型
>很好地提示了TypeVariable,Method 等反射接口
请举几个函数式例子, 说明 check(def) 如何证明调用是有效的
> "g(x, x) = x * 2"; // 是无效
利用 Haskell data 编写类型的数据模型
>很长地细化了反射接口
请了解js的 PEG 和递归下降技术, 解释 num,str 的嵌套列表 和csv的PEG文法
>很成功举出可运行的示例+test
>可示例只观感上正确 ,且使用了PEG不支持的leftRec
既然有了解析器,借鉴lisp标准做一个 js 调用器,能实现对 (fun filterMap(xs f) ) 的定义,要支持 fun when let = 几函数
>听不懂
为什么你不太熟悉实现这些,但很会写 snake,tetris 这种js游戏代码呢?
>我利用我的内部知识和一些在线资源来拼凑出一个可运行的结果
在经济上, 程序员的工资完全取决于其工作的难度吗? 如果AI让难度变低,对编程界会有什么影响呢?一些人觉得AI掌握了他们在小圈子里独有的技术, 从而让这种技术廉价化了,你能举几个回应吗
>AI 可以帮助程序员提高效率、创造力和协作能力,让他们更容易解决复杂的问题,但可能会取代一些低层次或重复性的编程工作,导致一些程序员失业或降低收入
程序员需要不断地学习新的技术和知识,AI是要帮助他们更好地使用和发展他们的技术
有解析库支持在定义 parse 的同时对应地支持toString 吗? 基于递归下降算法如何让 list 文法同时支持parse和toStr (stringify,dumps) 呢
>没有,ANTLR有吗? 不知道咋做
几个支持unparse 的库: csv , xml2dict, pyast
传统的: https://pegjs.org/online ,jison
https://www.compart.com/en/unicode/plane
理论上来说,既然能解析一种文法, 就一定可以把生成的数据还原回来
>正确,还原的字符串可能和原始的字符串有一些细微的差别,比如空格,换行,注释
这种正反函数的概念,对 HTML 数据绑定也有效, 意思是能被 render() 就能被爬取, 你能举出例子吗
>不懂,但有人答过js怎么做数据绑定
你能解释 parse-unparse 和 mmap() 的区别吗,假设mmap能够映射AST
>那就不需要parse了,但我也不熟悉。 mmap() vs read(buf) chunked
js Blob DataView 的封装
Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited
https://github.com/tree-sitter/node-tree-sitter
我有 1, (1), (1 20) 这样的递归模式要用 Perl 正则匹配
>
#rust #dontknow 离谱的循环
fn
#py
我想写类于Java 类型系统的类型检查器,请提供类型的数据模型
>很好地提示了TypeVariable,Method 等反射接口
请举几个函数式例子, 说明 check(def) 如何证明调用是有效的
> "g(x, x) = x * 2"; // 是无效
利用 Haskell data 编写类型的数据模型
>很长地细化了反射接口
请了解js的 PEG 和递归下降技术, 解释 num,str 的嵌套列表 和csv的PEG文法
>很成功举出可运行的示例+test
>可示例只观感上正确 ,且使用了PEG不支持的leftRec
既然有了解析器,借鉴lisp标准做一个 js 调用器,能实现对 (fun filterMap(xs f) ) 的定义,要支持 fun when let = 几函数
>听不懂
为什么你不太熟悉实现这些,但很会写 snake,tetris 这种js游戏代码呢?
>我利用我的内部知识和一些在线资源来拼凑出一个可运行的结果
在经济上, 程序员的工资完全取决于其工作的难度吗? 如果AI让难度变低,对编程界会有什么影响呢?一些人觉得AI掌握了他们在小圈子里独有的技术, 从而让这种技术廉价化了,你能举几个回应吗
>AI 可以帮助程序员提高效率、创造力和协作能力,让他们更容易解决复杂的问题,但可能会取代一些低层次或重复性的编程工作,导致一些程序员失业或降低收入
程序员需要不断地学习新的技术和知识,AI是要帮助他们更好地使用和发展他们的技术
有解析库支持在定义 parse 的同时对应地支持toString 吗? 基于递归下降算法如何让 list 文法同时支持parse和toStr (stringify,dumps) 呢
>没有,ANTLR有吗? 不知道咋做
几个支持unparse 的库: csv , xml2dict, pyast
传统的: https://pegjs.org/online ,jison
https://www.compart.com/en/unicode/plane
理论上来说,既然能解析一种文法, 就一定可以把生成的数据还原回来
>正确,还原的字符串可能和原始的字符串有一些细微的差别,比如空格,换行,注释
这种正反函数的概念,对 HTML 数据绑定也有效, 意思是能被 render() 就能被爬取, 你能举出例子吗
>不懂,但有人答过js怎么做数据绑定
你能解释 parse-unparse 和 mmap() 的区别吗,假设mmap能够映射AST
>那就不需要parse了,但我也不熟悉。 mmap() vs read(buf) chunked
js Blob DataView 的封装
Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited
https://github.com/tree-sitter/node-tree-sitter
我有 1, (1), (1 20) 这样的递归模式要用 Perl 正则匹配
>
(\d+|\((?R)+\)) 和 (?<R>\d+|\((?&R)(?:\s+(?&R))*\))
在$ pcretest
能校验配对,但很脏#rust #dontknow 离谱的循环
let c = loop {
if Q() {
break "answer";
} else {
break None;
}
};
fn
first(:Iter):Option = for x in list {break Some(x);}
else default {None}
so for, while, while let 该咋办?😒易放难收#py
for x in []: pass
else: return "没有"
呃.. 第一次见到 wiki 编辑战
小时候(高中) 很喜欢 #mozilla #Rust ,还写了这个(列表处理)程序
大概就是暗暗觉得……高性能又开源(根正描红的那种,练习时长两年半只为开源语言,太感人了)
后来看的就淡了,因为rust真的很(烧脑?)
—
我觉得能和 C FFI 的某种意义上都是系统,比如 py 的嵌入式GPIO libs
.Net 有P/Invoke和struct{}, 栈分配 啊,他们可能觉得入选 osdev.wiki 才叫系统编程
无非就是FFI和struct指针的问题,既然 py (cffi能读写指针), .Net unsafe marshall 支持二进制,也是能实现OSkrnl的需求
但KN 不是,因为强类型强检查 弱框架,写着麻烦
系统级就是你可以用来写内核和驱动
这个 lunatik 能在内核层开启 #Lua REPL
这个 https://duskos.org/#operator 类似 tccboot, 但是嵌入式的
小时候(高中) 很喜欢 #mozilla #Rust ,还写了这个(列表处理)程序
大概就是暗暗觉得……高性能又开源(根正描红的那种,练习时长两年半只为开源语言,太感人了)
后来看的就淡了,因为rust真的很(烧脑?)
—
我觉得能和 C FFI 的某种意义上都是系统,比如 py 的嵌入式GPIO libs
.Net 有P/Invoke和struct{}, 栈分配 啊,他们可能觉得入选 osdev.wiki 才叫系统编程
无非就是FFI和struct指针的问题,既然 py (cffi能读写指针), .Net unsafe marshall 支持二进制,也是能实现OSkrnl的需求
但KN 不是,因为强类型强检查 弱框架,写着麻烦
系统级就是你可以用来写内核和驱动
这个 lunatik 能在内核层开启 #Lua REPL
这个 https://duskos.org/#operator 类似 tccboot, 但是嵌入式的
Telegram
chr_56 in Kotlin CN
https://www.zhihu.com/answer/3076563039
#py 周刊
ShortGPT #bilibili 短视频裁缝, Pixels, Bing Image
https://github.com/gto76/python-cheatsheet#curses
TTS, Mario Brothers, TUI文件浏览器, COVID图表的示例❤️
- 代码命名红黑榜
uvicorn vs #rust 的单/多线程跑分: 差异 10%
data diff
python -m nntplib
, calendar, asyncio, http.server ,. 命令行工具 'gmane.comp.python.general has 757285 articles,'dinov2_retrieval -q img.png -d ./all_images/以图搜图
ShortGPT #bilibili 短视频裁缝, Pixels, Bing Image
https://github.com/gto76/python-cheatsheet#curses
TTS, Mario Brothers, TUI文件浏览器, COVID图表的示例❤️
- 代码命名红黑榜
uvicorn vs #rust 的单/多线程跑分: 差异 10%
from blacksheep import Applicationimport logging; 对象支持
import asyncio
app = Application()
@app.route("/async")
async def test_async():
await asyncio.sleep(.002)
return "OK"
Formatter('%(name).%(asctime)s: %(message)s'), RotatingFileHandler('my_log.log', maxBytes=2000, backupCount=10)
的参数配置, 默认print WARN以上的记录, logger.exception() 默认 ERRORpip install pystack pytest-pystack; pystack remote `pidof python`
#ffi (仅限 linux, docker)git clone https://github.com/BiteStreams/fastapi-template PetStore
#dev 使用 poetry poly 和 FastAPI session 创建微服务 data diff
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#12:Python 中如何调试死锁问题?
🦄文章&教程
1 、使用 PyStack 调试 Python 中的崩溃和死锁 (英)
2 、介绍一个 FastAPI 项目模板 (英)
3 、Python FastAPI 微服务与 Polylith 架构 (英)
4 、Python 日志模块:实战应用与最佳实践
5 、测量 Python 和 Rust 异步 Web 服务的性能 (英)
6 、dinov2_retrieval:一个基于 DINOv2…
Python 潮流周刊#12:Python 中如何调试死锁问题?
🦄文章&教程
1 、使用 PyStack 调试 Python 中的崩溃和死锁 (英)
2 、介绍一个 FastAPI 项目模板 (英)
3 、Python FastAPI 微服务与 Polylith 架构 (英)
4 、Python 日志模块:实战应用与最佳实践
5 、测量 Python 和 Rust 异步 Web 服务的性能 (英)
6 、dinov2_retrieval:一个基于 DINOv2…
duangsuse::Echo
感觉虽然有些收获,也都是没啥意思的问题…… 面试呢,或许对我这种数学渣就都做不到的吧? #statement 我讨厌这种AI都能写的问题,这些”深刻思考“有什么价值呢? 总是一些算法,让编程变成一种不快乐的任务、变成帮出题人自问自答的”寻宝“ 这些出题人又有多聪明呢? 大众都在润色70年前,世上还没电脑时就有的问题, 而小众又能成什么气候,又如何让他们的沧海遗珠给时兴编程带来价值呢? 如果用《算法图解》那种小说口吻去讲,做一些有弹性的科普视频,倒是有娱乐价值;如果写代码只是为了复制粘贴「能用的东西…
举例, #ts 上有”交并集类型“ (有人认为 hs, Rust 没有子类型所以不存在集合论的,确实如此但 in-out 形变是Racket子语言里也有的,我找不到原文但TRack 是有)
(我一点也不羡慕没有重载和this模块等多态技术的圆括号 😅, 模型的缺失是拿宏手动兼容 a.b.c 所弥补不了的, 就像 F# 的 |> 比不上 xx.let{}, kt 的元组 destruct 比不上 ES6 let[x,y]=P, ES6的解构又不如 Prolog 的 unify [x,1]=[2,y]...
观摩王垠《别再欺负我们读书少》:
- id(itself) “同时”是int->int和bool->bool,而不是表示它“有时”是int->int,而另外的时候是bool->bool。
- 所以,id(1)一定是int。如果你输入id(True),它推导出的一定是bool。
- 否则,调用id(1)会报错,因为id的类型有可能是bool->bool,不能接受int的输入。调用id(True)也会报错,左右不是人。
但我习惯拿 成员交=union ,成员并=insect ,绝口不提“同时”“有时” 这种抽象说法乃至术语
- id “必须”是int->int, bool->bool ,而不是“可为” int->int | bool->bool。 when(x) { is Int, is Str } 这种情况才是“x可为二者”
- 否则,调用id(1),id(True)都会报错,因为id的类型有可能是bool->bool,不能接受int的输入,或者反之。
严谨性绝对是次于创造力的,况且,含糊的说法对同时使用和实现不利。
虽然这些都是小小的细节,但每个细节都注重可读性,随着设计的步进,最终会形成巨大的差异。即便都是用AI,我的实现也会有很多不同
(我一点也不羡慕没有重载和this模块等多态技术的圆括号 😅, 模型的缺失是拿宏手动兼容 a.b.c 所弥补不了的, 就像 F# 的 |> 比不上 xx.let{}, kt 的元组 destruct 比不上 ES6 let[x,y]=P, ES6的解构又不如 Prolog 的 unify [x,1]=[2,y]...
观摩王垠《别再欺负我们读书少》:
- int -> int | bool ->bool
表示的确实是一个intersection type(^),而不是union type(|)- id(itself) “同时”是int->int和bool->bool,而不是表示它“有时”是int->int,而另外的时候是bool->bool。
- 所以,id(1)一定是int。如果你输入id(True),它推导出的一定是bool。
- 否则,调用id(1)会报错,因为id的类型有可能是bool->bool,不能接受int的输入。调用id(True)也会报错,左右不是人。
但我习惯拿 成员交=union ,成员并=insect ,绝口不提“同时”“有时” 这种抽象说法乃至术语
- int -> int | bool ->bool
表示的确实是一个重载,而不是Either- id “必须”是int->int, bool->bool ,而不是“可为” int->int | bool->bool。 when(x) { is Int, is Str } 这种情况才是“x可为二者”
- 否则,调用id(1),id(True)都会报错,因为id的类型有可能是bool->bool,不能接受int的输入,或者反之。
严谨性绝对是次于创造力的,况且,含糊的说法对同时使用和实现不利。
虽然这些都是小小的细节,但每个细节都注重可读性,随着设计的步进,最终会形成巨大的差异。即便都是用AI,我的实现也会有很多不同
Telegram
duangsuse::Echo
#learn #ts #kt 子类型 vs 组合, in/out参数
https://t.me/dsuses/5194
总之,trait类型的交集 还是需要in/out,这不是子类型带来的麻烦。
a=append(a,x) 与 copy(a,src) 类型上是一样的,前者也并不能“把a修正为更窄接口”。 Go必须把list+=单项 写出来, 因为缺少型变
func main() {
var src []interface{} = []any{1, 2, 3, 4, 5}
var dst []int…
https://t.me/dsuses/5194
总之,trait类型的交集 还是需要in/out,这不是子类型带来的麻烦。
a=append(a,x) 与 copy(a,src) 类型上是一样的,前者也并不能“把a修正为更窄接口”。 Go必须把list+=单项 写出来, 因为缺少型变
func main() {
var src []interface{} = []any{1, 2, 3, 4, 5}
var dst []int…
#rust #gui 🤔Yew 是 #wasm 的前端框架 https://t.me/dsuses/5232
Tauri.app #js 很流行,能够打包到600K 但看起来它只是和html调用rust的工具,或模板引擎
Dropbox,CF 已经应用 Tauri 实现高性能的网页端计算
“我还是搞不太懂技术栈对电量损耗的影响,Native 会比 Web 省电吗?Python 会比 Node 省电,但是 Python + PyGames 会比 Node + Libyue 省电吗?Dart 比 JS 省电,但是带上 Flutter 呢?
https://t.me/im_RORIRI/10799
Tauri.app #js 很流行,能够打包到600K 但看起来它只是和html调用rust的工具,或模板引擎
Dropbox,CF 已经应用 Tauri 实现高性能的网页端计算
“我还是搞不太懂技术栈对电量损耗的影响,Native 会比 Web 省电吗?Python 会比 Node 省电,但是 Python + PyGames 会比 Node + Libyue 省电吗?Dart 比 JS 省电,但是带上 Flutter 呢?
https://t.me/im_RORIRI/10799
Telegram
duangsues.is_a? SaltedFish
当然,请参考以下链接获取有关 Rust 中流行的 UI 框架的更多信息:
1. Yew - Yew 是一个现代化的 Rust 框架,用于构建基于 WebAssembly 的前端应用程序。它采用类似于 React 的组件模型和虚拟 DOM,提供强大的状态管理和事件处理功能。Yew 的官方网站提供详细的文档、示例和指南。
2. Iced - Iced 是一个简单高效的跨平台 GUI 库,专注于构建桌面应用程序。它提供易于使用的 API 和功能强大的 UI 组件,使用函数式反应式编程风格。在项目的 GitHub…
1. Yew - Yew 是一个现代化的 Rust 框架,用于构建基于 WebAssembly 的前端应用程序。它采用类似于 React 的组件模型和虚拟 DOM,提供强大的状态管理和事件处理功能。Yew 的官方网站提供详细的文档、示例和指南。
2. Iced - Iced 是一个简单高效的跨平台 GUI 库,专注于构建桌面应用程序。它提供易于使用的 API 和功能强大的 UI 组件,使用函数式反应式编程风格。在项目的 GitHub…
#py 周刊
#learn visualize 交互式py学习
numpy-pandas, cupy-cuDF
from rich import inspect: py版的 devtools
textual.binding UI: 手动实现命令行 ChatGPT
命令行 MSPaint
#web #ml 支持向量列的数据库
asyncio 用线程池优化文件读取
Mpire: A Python package for easier and faster multiprocessing https://github.com/sybrenjansen/mpire
#rust py异步流读取 JSON
py的元编程FFI:
jupyterSQL 教程
java
#ce CPython如何编译源代码
#learn visualize 交互式py学习
conda install -c conda-forge lpython
在使用dict时比 numba.njit 编译快一倍 . cython3 最近更新就不提了numpy-pandas, cupy-cuDF
pip install jupyter-ai
可以用 %%ai chatgpt -f math,html,.
免费访问AI,避免复制粘贴了match case:
已经可替代 elif from rich import inspect: py版的 devtools
textual.binding UI: 手动实现命令行 ChatGPT
命令行 MSPaint
#web #ml 支持向量列的数据库
asyncio 用线程池优化文件读取
Mpire: A Python package for easier and faster multiprocessing https://github.com/sybrenjansen/mpire
#rust py异步流读取 JSON
py的元编程FFI:
jupyterSQL 教程
java
from jpype import startJVM, shutdownJVM, java
startJVM(convertStrings=False)
java.lang.System.out.println("hello world")
java.util.Random().nextInt(10)
js import pythonmonkey as js; js.eval("console.log")('hello, world')
#ce CPython如何编译源代码
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
👉Python 潮流周刊#14:Lpython 高性能编译器、Python 与 JavaScript 实现互通
🦄文章&教程
1、LPython:新颖、高性能、适用于多平台的 Python 编译器
2、Cython 3.0.0 的文档
(附详解历时五年的 Cython3.0 都发生了哪些变化 )
3、Python 中使用 Pandas 和 NumPy 计算变异系数
4、Jupyter 中的生成式 AI
5、Python 中的结构化模式匹配
6、使用 Rich…
👉Python 潮流周刊#14:Lpython 高性能编译器、Python 与 JavaScript 实现互通
🦄文章&教程
1、LPython:新颖、高性能、适用于多平台的 Python 编译器
2、Cython 3.0.0 的文档
(附详解历时五年的 Cython3.0 都发生了哪些变化 )
3、Python 中使用 Pandas 和 NumPy 计算变异系数
4、Jupyter 中的生成式 AI
5、Python 中的结构化模式匹配
6、使用 Rich…
duangsuse::Echo
#py #math 《优雅不是奢侈品》 “如何才能让编程者们相信,简单性和清晰性——简而言之:数学家所说的“优雅”——不是可有可无的奢侈品,而是决定成功与失败的关键因素?” ― Edsger W. Dijkstra,“计算机著作精选:个人观点”,第 347 页。 简单明了的代码就是优雅的代码。这些都是代码中非常理想的属性。Dijkstra 又补充道: “……在软件不可靠性的情况下,最大的成本因素是复杂。 一个可靠的(因此简单的)程序的开发和使用成本,比一个(复杂的因此)不可靠的程序要廉价。” 人们…
#py 周刊
- 《优雅不是奢侈品》
- nogil 最新情报
- #web Django ORM 最佳实践
- Django 自带的JWT 路径验证和登录页
- #ts 阮一峰 入门, 纯JS入门
- #linux #rust Nush: 不是 Powershell
- #js npm依赖图
- #ai #tool realsizer4x 超分辨
- #rust
- #ui Toga: 跨平台的 TkGUI
- #ml Viberary: 开源书籍检索引擎
- Khan 为何从Py2移植到 kt,go
- #parallel 用asyncio分享查询,防止缓存失效时并发卡爆
- #plt Rust vs Idris,Zig: 渐强类型的解药 #1
单进程 cron:
- 奇怪的for赋值, 魔术方法
实现 lazy load:
⭐️
#code 修改语法
#ts
#1为什么静态类型的C,Go,C++ 不是弱检查 就是太复杂
代码练习: 不需要
int[10] 的实质、 #Kt 类型推导的原理
- 《优雅不是奢侈品》
- nogil 最新情报
- #web Django ORM 最佳实践
- Django 自带的JWT 路径验证和登录页
- #ts 阮一峰 入门, 纯JS入门
- #linux #rust Nush: 不是 Powershell
- #js npm依赖图
- #ai #tool realsizer4x 超分辨
- #rust
pixi add cowpy
强化pip- #ui Toga: 跨平台的 TkGUI
- #ml Viberary: 开源书籍检索引擎
- Khan 为何从Py2移植到 kt,go
- #parallel 用asyncio分享查询,防止缓存失效时并发卡爆
- #plt Rust vs Idris,Zig: 渐强类型的解药 #1
单进程 cron:
from apscheduler.schedulers.background import BackgroundScheduler并行 multiprocessing: #2
cron = BackgroundScheduler(jobstores=sqlite)
.add_job(print, 'interval', seconds=5)
.start()
with mpire.WorkerPool(n_jobs=5) as pool:- 修改语法ASDL,实现
results = pool.map(getFiles, range(10), progress_bar=True)
map( (x)=>x*x, [1])
[Parser/Python.asdl] [30行实现]- 奇怪的for赋值, 魔术方法
from xx import*
的明确化:设置好 xx.__all__ = [exports
]实现 lazy load:
importlib.import_module
⭐️
import pyforest
自动导入np,pd 等变量#code 修改语法
__import__('cv2')
- from lazy import cv2— 仅供学习,import 语句本可以是局部。 (GPT怎么变蠢了
import types,sys
class lazy(types.ModuleType):
def __getattr__(self, mod):
import importlib.util as _
if None==(r:=sys.modules.get(mod)):
id = _.find_spec(mod)
# get it inserted into sys.modules.
_.LazyLoader(id.loader).exec_module(r:=_.module_from_spec(id))
return r
sys.modules['lazy']=lazy('-L imports')
#ts
#1为什么静态类型的C,Go,C++ 不是弱检查 就是太复杂
代码练习: 不需要
type WTF<> =
就可以检查 htmlTag, funcPipe, nthArg, printf("\d") 等调用的类型 int[10] 的实质、 #Kt 类型推导的原理
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
🦄文章&教程
1、写代码时,优雅有意义吗?
2、Python Asyncio实践--高并发下如何防止缓存击穿
3、高效定时任务处理:深入学习 Python 中 APScheduler 库的奥秘
4、CPython 开发实战:魔改 lambda 函数
5、CPython 是如何实现引用计数的?
6、使用 Importlib 实现 Python 延迟加载
7、使用 Python…
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
🦄文章&教程
1、写代码时,优雅有意义吗?
2、Python Asyncio实践--高并发下如何防止缓存击穿
3、高效定时任务处理:深入学习 Python 中 APScheduler 库的奥秘
4、CPython 开发实战:魔改 lambda 函数
5、CPython 是如何实现引用计数的?
6、使用 Importlib 实现 Python 延迟加载
7、使用 Python…