• 投稿

用 C 语言实现最小的纯函数式语言 | Tsoding Daily

8226
21
2025-12-21 23:00:00
172
24
305
22
视频介绍了如何在C语言中实现一个lambda演算解释器。lambda演算是函数式编程的基础计算模型,语法仅包含变量、匿名函数(lambda)和函数应用。作者详细讲解了抽象语法树的设计,包括变量、函数和应用三种表达式的数据结构。视频还演示了如何实现表达式求值(beta归约)和避免变量捕获(alpha等价)等核心语义,并讨论了不同求值策略(如急切求值)的影响。最终目标是构建一个能解析和执行lambda表达式的小型解释器。 title: Smallest Pure Functional Language in C url: https://www.youtube.com/watch?v=KuVUfbWoROw uploader: Tsoding Daily publish_timestamp: 2025-12-16 21:00:37 CST duration: 3:23:01 原视频描述(中文翻译): 在 Twitch 直播:https://twitch.tv/tsoding 章节: - 00:00:00 - 主要环节 - 03:19:58 - 补充说明 参考资料: - https://en.wikipedia.org/wiki/Lambda_calculus - https://github.com/morganey-lang/Morganey - https://en.wikipedia.org/wiki/Currying - https://en.wikipedia.org/wiki/Fixed-point_combinator - https://github.com/tsoding/lamb 主题:在 C 语言中实现无类型 Lambda 演算解释器
不要关注。传视频只是当做网盘方便自己看。(因为人工字幕几期被审核没收,道心破碎,立誓再做人工字幕我就是傻x!
🔒Tsoding(锁定)
(35/196)
157.5万播放
简介
Tsoding 问答直播 | Tsoding Daily
01:20:07
C语言打造最强Tokenizer:LLM性能炸裂 🚀
是时候用C++写UI了![Tsoding]
C 语言的多线程是程序员的噩梦
被严重低估的“C/C++杀手”
[中英熟肉] 解析 3D 文件 | Tsoding Daily
[中英熟肉] 你不需要 GitHub:任何 SSH 服务器都是一个 Git 服务器 | Тsфdiиg
Umka: 真正的类型化脚本语言?! | Tsoding Daily
基础字体库 | Tsoding Daily
Tsoding 谈简单软件 | Tsoding Highlights
我对AI与软件行业未来的思考 | Tsoding Daily
libffi 这个库是个隐藏的宝藏 | Tsoding Daily
没有分号的C语言是什么样子? | Тsфdiиg
成功地失败了! C 语言陷阱: 代码对了吗? 对的,喔不对,喔对的 | Tsoding
picoc 这门语言烂到极致反而很赞 | Tsoding Daily
不依赖三方库和框架,直接操纵像素在 CPU 上跑 Shader | Tsoding
C 中的动态数组| Тsoding
17年后,我终于尝试了Protobuf | Tsoding Daily
你应该阅读开源代码 | Tsoding
在新笔记本上配置 Emacs | Tsoding Daily
如何避免所有内存泄漏 | Tsoding
我在 C 语言中实现动态设计 | Tsoding Daily
别再跟我提 C 语言的 _Generic(泛型)! | Tsoding
我在 Kick 上直播编程(大哥被制裁登不上 twitch 了) | Tsoding Daily
Linux 上用 C 语言实现软件渲染游戏 | Tsoding Daily
我写了一个 Emacs 插件 | Tsoding Daily
编程派对小技巧 | Tsoding
如果直接用 C 语言替代正则表达式会怎样 | Tsoding Daily
Zig vs C3:为什么有了 C3 还需要 Zig? | Тsodiиg
有什么推荐的编程书吗?停止寻找权威指南,开始创造自己的知识。 | Tsoding
史上最佳编程语言 | Tsoding | Tsoding Highlights
优秀开发者为何要用“烂”电脑?| Tsoding | Tsoding Highlights
我是个只会if-else语句的开发者 | Tsoding
Emacs: 有点臭又有点香 | Tsoding
用 C 语言实现最小的纯函数式语言 | Tsoding Daily
这语法是什么鬼?! | Tsoding
"整洁代码"只是办公室政治游戏工具 | Tsoding Daily
04:45
我对 Y Combinator(lambda的那个) 的看法 | Tsoding
00:50
我开发了一门俄罗斯编程语言 | Tsoding Daily
02:06:44
在 Linux 上使用 Objective-C | Tsoding Daily
02:35:22
微软你连怎么开发操作系统都忘了!? | Тsoding
01:41
一个公式解密3D图形 | Tsoding
20:16
Tsoding 谈论 Odin(或任何“热门”语言)时 | Tsoding Highlights
01:36
C语言游戏开发:日志系统 | Tsoding Daily
02:16:44
企业编程已死 | Tsoding | Tsoding Highlights
03:29
YouTube 的阴暗面 | Tsoding | Tsoding Highlights
01:06
软件为何总是出问题 | Tsoding | Tsoding Highlights
02:28
Tsoding 怎么看互联网档案馆被黑客攻击 | Tsoding Highlights
02:00
Tsoding 怎么看 Ladybird 浏览器中使用 Swift | Tsoding Highlights
01:32
Java 是一门高度面向对象的语言 | Tsoding
00:31
Wren: 优雅小巧的脚本语言 | Tsoding Daily
03:35:08
运算符重载真的有必要吗?| Tsoding | Tsoding Highlights
01:38
C语言实现递归目录遍历 | Tsoding Daily
03:19:07
悄然改变C语言的库 | Tsoding
10:01
在经济下行时代如何做好工作 | Tsoding Daily
02:59:21
解读学术黑话 | Tsoding Daily
02:06:33
C++ 的问题 | Tsoding | Tsoding Highlights
01:51
C语言的问题 | Tsoding | Tsoding Highlights
01:48
你可能从未听过的 C 语言奇怪特性 | Tsoding Daily
38:06
魔改 C 编译器 | Tsoding Daily
02:00:24
静态类型语言胜出 | Tsoding | Tsoding Highlights
02:02
ASN.1:比 Protobuf 更优的选择 | Tsoding Daily
01:43:35
C和Rust的编译器居然是用它们自己写的!自举程序 | Tsoding
24:37
庞大的 Switch 语句其实没那么糟糕 | Tsoding | Tsoding Highlights
01:12
实用的代码往往很丑 | Tsoding | Tsoding Highlights
02:15
什么是编程?| Tsoding | Tsoding Highlights
02:13
Jai 语言中的类型反射 | Tsoding Daily
01:31:42
俄罗斯人揭露美国国家安全局不想让你知道的秘密😂 | Tsoding | Tsoding Highlights
01:04
通过犯错成为更好的程序员 | Tsoding | Tsoding Highlights
01:42
C语言中的聚类算法(DBSCAN) | Tsoding Daily
04:05:24
用 Python 测试一切 | Tsoding Daily
01:46:06
使用生命游戏测试新语言或新技术 | Tsoding | Tsoding Highlights
01:02
ChatGPT的最大问题 | Tsoding | Tsoding Highlights
02:13
C语言中的自动文档工具实现 | Tsoding Daily
02:28:08
致微软员工:感谢你们加速 Windows 的终结 | Tsoding
00:56
函数式程序员日常: 忙活了一大圈,代码在语法层面就是普通的 Python | Тsoding
00:29
我尝试了Lean,瞬间获得数学博士学位 | Tsoding Daily
03:15:10
C语言游戏开发 — 实现《雷神之锤》风格控制台 | Tsoding Daily
02:09:21
使用 Go 实现垃圾邮件过滤器 | Tsoding Daily
02:16:23
使用 Go 优化用户参与度 | Tsoding Daily
03:09:09
C语言游戏开发:探索关卡编辑器的用户体验设计 | Tsoding Daily
02:15:37
C语言中的神奇影子数据技术 | Tsoding
21:48
探索 GObject 系统,放弃,然后转向 Vala 编程语言😂 库太烂,他们创建新语言来修复它 | Tsoding Daily
02:02:31
好耶! AI 让我们可以实现真正的oop了
02:44
使用 GTK 构建计算器 GUI 应用 | Tsoding Daily
02:50:56
用C语言实现三角形色轮 | Tsoding Daily
03:21:48
查询语言编译器开发 | Tsoding Daily
02:10:25
一个小型C语言编译器 | Tsoding Daily
02:46:22
C 语言的字符串太糟糕了! | Tsoding
28:46
为什么C程序员总喜欢混淆代码? | Tsoding Daily
02:01:57
C语言机器学习(第一集) | Tsoding Daily
02:31:07
构建新的深度学习框架(C语言机器学习第二集) | Tsoding Daily
03:07:01
最重要的机器学习算法(C语言实现机器学习第03集) | Tsoding Daily
04:05:47
用 C 语言可视化神经网络(C 语言机器学习系列第 4 集) | Tsoding Daily
01:52:52
相比 SDL,我更喜欢 Raylib(C 语言机器学习系列第 05 集) | Tsoding Daily
03:31:58
使用C语言中的神经网络实现图像超分辨率 | Tsoding Daily
02:10:04
用C语言做UI来惹恼React开发者 | Tsoding Daily
02:02:58
我的AI学习速度大幅提升!(说实话有点害怕...) | Tsoding Daily
02:15:03
我的 AI 现在可以生成视频了 | Tsoding Daily
02:32:07
我对机器学习的误解!以下是我的学习心得... | Tsoding Daily
01:14:49
用C语言实现识别形状的神经网络 | Tsoding Daily
03:43:48
在 Jai 中使用 Raylib 进行图形编程 | Tsoding Daily
02:27:02
C语言写游戏之碰撞检测 | Tsoding Daily
03:27:40
超大整数:探索 Big Integers 与 libgmp 库 | Tsoding Daily
01:41:47
Ada 会取代 C/C++ 吗? | Tsoding
44:57
C语言中的引用计数 | Tsoding Daily
02:17:14
这比 OCaml 更好 | Tsoding Daily
03:08:04
绑定生成器 | Tsoding Daily
02:44:39
数据存储在 Tarballs 中 | Tsoding Daily
Tsdoing bbox 10 小时纯享版 | Tsoding Daily
09:59:59
球球的函数式编程 | Tsoding Daily
02:22:36
C语言中的代际索引 | Tsoding Daily
03:09:01
Python 中的 K-d 树 #1 — 最近邻搜索问题与 SVG 解析 | Tsoding
用 C 语言写一个能解析 Python 缩进风格语法的解析器 | Tsoding Daily
04:27:44
我用 Jai 重写了整个项目 | Tsoding Daily
用 C 语言学习 Vulkan | Tsoding
Tsoding 谈为何他没有工作 | Ninad Sachania
这个叫Focus的文本编辑器要取代VS Code | Tsoding Daily
我尝试了 Svelte,立马得到了 125,000 美元的工作 | Tsoding Daily
故障着色器效果 | Tsoding Daily
Git 并非唯一选择 | Tsoding
我如何在编程时缩放画面 | Tsoding Daily
Tsoding 解释为何不使用 Odin | Ninad Sachania
Tsoding 谈为何不开发操作系统 | Ninad Sachania
从 NixOS 中偷师灵感 | Tsoding Daily
"逼着你们学!" 为什么我最近在直播中写 Jai 代码? | Тsфdiиg
Tsoding 谈在AI时代程序员如何生存 | Ninad Sachania
CTags 与 ETags 对比 | Tsoding Daily
在 Linux 上逆向分析 Windows EXE 文件 | Tsoding Daily
C 语言之前是什么语言? (用 Crust 实现 B 编译器。第一集)| Tsoding Daily
试玩吹哥新作《沉星之序》Demo | Tsoding
游戏开发 UP 主的残酷现实 | Tsoding Daily
C 也能做到,而且比 Python 更快 | Tsoding Daily
聊聊 AppImage | Tsoding Daily
我在 Linux 上试了一下 .NET,然后崩溃了 | Tsoding Daily
X11 的 API 令人蛋疼: 我撒了个关于我游戏的大谎 | Tsoding Daily
不用鼠标,用 C 语言编程: 将我的 Arena Allocator 库移植到 WebAssembly | Tsoding Daily
克服脑损伤,继续我的编译器工作: CRust 实现 B 编译器,第五集 | Tsoding Daily
用 Rust 和 C 模拟 6502 CPU: B 编译器系列第 11 集 | Tsoding Daily
无 GPU 图形 - 近裁剪面 | Tsoding Daily
如何不恰当地推销语言特性: 尝试用D语言的“better C”模式写一个简单的shell | Tsoding Daily
如果 Web 更简单会怎样 | Tsoding Daily
真不该把我的服务器命名为"urmom"
我处理命令行参数解析的方式 | Tsoding Daily
你不需要 Rust 来做这件事 | Tsoding Daily
Unix 的创造者也没料到这一出…… | Tsoding Daily
尝试了 Godot 后,我瞬间变成了富裕的独立开发者 | Tsoding Daily
英特尔过时了——是时候学习 ARM 汇编了 | Tsoding Daily
如果 Rust 比 C 还糟糕会怎样 | Tsoding Daily
我尝试了售价 100 美元的 BASIC IDE | Tsoding Daily
只用C编译器来构建C项目,不用CMake | Tsoding Daily
我实现了自己的指针 | Tsoding Daily
打造自适应音乐播放器 | Tsoding Daily
所有人都想替代这个库 | Tsoding Daily
Linux 编程中最难的问题 | Tsoding Daily
CMake 已过时... | Tsoding Daily
我用你们水群的聊天记录训练AI模型 | Tsoding Daily
内存泄漏是安全的 | Tsoding Daily
【限定披发美女皮肤】切换至C语言,发量瞬间暴涨 | Tsoding Daily
我们遗忘的IDE | Tsoding Daily
我在 Linux 里发现了很多后门……
写一个真正的音乐随机播放算法 | Tsoding Daily
数字音乐循环器 - 第1集 | Tsoding Daily
低级音频编程 - ADSR | Tsoding Daily
QWERTY 键盘作为乐器 | Tsoding Daily
声波的奇妙之处 | Tsoding Daily
用 C 语言构建问题追踪器 | Tsoding Daily
Tsoding 问答 2026: 在被制裁的俄罗斯如何求网络打赏😂 | Tsoding Intros
将 Emacs 与音乐播放器集成 | Tsoding Daily
用 Jai 语言不借助库解析 XML - Tsoding | Tsoding Daily
我终于将我的项目开源了:命令行任务追踪工具Tatte | Tsoding Daily
可复用的撤销系统 - Tsoding | Tsoding Daily
音乐播放器 FFT 可视化:让球体在暂停时脱离 | Tsoding Daily
为什么我的编辑器里有奇怪的行号? | Tsoding Daily
Tsoding 意外发现了 Emacs RSS 阅读器 | Hamburger Helper
给自制音乐播放器 Sowon2 加上了字幕支持 | Tsoding Daily
我试了 GameMaker,立刻就拿下了年度游戏 | Tsoding Daily
用 Rust 编程 | Tsoding Daily
在 Linux 上复活 2003 年的 Win32 C 代码 | Tsoding Daily
@Tsoding 在 Linux 上体验 The RAD Debugger | Ninad Sachania
Rust 难以阅读 | Tsoding | Tsoding Highlights
没人再喜欢原生应用了(Tsoding: 除了我
我的观众对我的 Go 应用发起了 DDoS 攻击 | Tsoding Daily
我用 Rust 重写了我的 Go 应用 | Tsoding Daily
我的观众对我的 Rust 应用发起了 DDoS 攻击 | Tsoding Daily
Rust 中简单到不合理的控制台应用 | Tsoding Daily
禁忌的 Rust | Tsoding Daily
终端中的虚拟 DOM | Tsoding Daily
用 Lua 实现经典乒乓球游戏 | Tsoding Daily
3 个小时的调试!!! @Tsoding
静态类型 Lua | Tsoding Daily
主包 Tsoding 朗读 AI 给他写的传记
为什么人们喜欢这门语言? | absolute_bajoding
能不能把游戏画面缩放交给服务器来做?改变一切的 X11 扩展(XRender) | Tsoding Daily
JavaScript 中鲜为人知的技巧
Web 开发者吹嘘原生应用最基础的功能 | absolute_bajoding
客服
顶部
赛事库 课堂 2021拜年纪