## 咖喱化 vs. 其他函数风格:重新评估 咖喱化函数,即将接受多个参数的函数转换为一系列每个函数接受单个参数的函数,是函数式编程的标志。虽然优雅,但与传统的“参数列表”(如 Rust 中)或“元组”风格相比,这种风格并非没有缺点。 咖喱化的主要论点*是*它促进了**部分应用**——通过预先填充一些参数来创建新函数。然而,部分应用也可以通过其他风格实现,尽管有时语法不太简洁。一个“洞运算符”可以提供相似的可读性。 作者认为咖喱化的主要吸引力可能是审美上的——其归纳“形状”与函数式编程原则产生共鸣。然而,咖喱化类型可能是不对称且不直观的(In -> Out vs. P1 -> P2 -> P3 -> R),可能阻碍组合。 由于在求值过程中创建中间函数表达式,性能也可能是一个问题,尽管优化器可以减轻这个问题。 **依赖类型语言**(如 Coq)中,元组风格的一个关键优势在于返回类型可以依赖于输入*值*。咖喱化会使这些场景复杂化,需要手动取消咖喱化。 最终,虽然咖喱化深深植根于函数式语言中,但作者建议在新语言设计中考虑元组风格——以及改进的部分应用语法——同时承认咖喱化在特定上下文(如 `map` 和 `fix`)中的持续实用性。
teebot.dev v1.40.0
最快的方式来表达你的想法
[账户][简洁]
tee <命令>
左右|移动 上下
回车键换行 (最多6行)
0/400+ 文本颜色+ 字体+ 衣服颜色
预览 & 价格 →
全球运输 · 反馈 · 订阅 · 政策 · 由 foxpress.dev 构建
v1.40.0
创意和灵感:单身派对 · 告别单身派对 · 生日 · 家庭聚会 · 团体旅行 · 团队服装 · 搞笑礼物 · 定制语录 · 情侣装 · 退休 · 毕业典礼 · 办公室派对
## Windows 开发:抽象的混乱
一位资深 Windows 开发者用一个简单的项目——为游戏关闭显示器的工具——重新接触了原生应用开发。他很快发现,这片领域出人意料地支离破碎且令人沮丧。虽然最初被怀旧之情吸引,但这次经历凸显了为什么现在许多人选择像 Electron 这样的跨平台解决方案。
在数十年里,微软在基础 Win32 API 之上添加了多层抽象(通过 MFC、.NET 的 Windows Forms & WPF、WinRT/UWP,以及现在的 WinUI 3)。每次迭代都旨在实现现代化,但往往会引入差距,并要求开发者退回到较旧的 API。
目前,使用最新的 WinUI 3 和 Windows App SDK 带来了艰难的选择:为了性能使用内存不安全的 C++,或者由于系统 .NET 版本过时而捆绑一个巨大的 .NET 运行时(AOT 编译)。 分发也存在问题,需要昂贵的代码签名或笨拙的旁加载过程。
作者发现,即使是基本功能也需要调用较旧的 API,而且 C# 语言本身缺乏适合 Windows 开发的特性。他认为微软并没有优先考虑原生 Windows 应用,这从稀疏的问题跟踪器回复以及核心应用对 Web 技术的依赖可以看出。最终,他建议 Electron 或 Tauri 为许多人提供了一条更实用的途径,利用熟悉的 Web 技术并避免演进且常常不完整的原生 Windows 生态系统的复杂性。