📄️ 用MoonBit编写数独求解器
数独是一种起源于1979年的推理游戏,其形式很适合报刊这种纸质媒体,不过即使在传统报刊式微的今天,可以在电脑、手机上尝试的数独游戏程序仍然不少。虽然在娱乐方式多种多样的今天它很难引起大众的广泛关注,但数独爱好者聚集的社群并未消亡(在线论坛如enjoysudoku)。本文的意图并非劝大家都去玩数独,而是展示如何用MoonBit编写合适的程序求解数独。
📄️ 无类型 Lambda 演算
相信点开这篇文章的您或多或少地听说过函数 式编程这个名词。在摩尔定律失效的今天,对多核处理器的充分利用成为了一种越发重要的程序优化方法,而函数式编程也因为其并行运算亲和的特点在大众视野中越发频繁地出现。究其原因,离不开它从其理论上的祖先之一 - lambda演算那里所继承的特征。
📄️ 实现 Haskell 求值语义(系列一)
在探索编程语言的世界中,我们不可避免地会遇到一个核心概念:惰性求值(Lazy Evaluation)。Haskell,作为一门纯函数式编程语言,有强大的惰性求值机制,这一机制不仅允许开发者编写出更加高效和简洁的代码,而且在处理大型数据集或复杂的数据流时,能提高程序的性能和响应速度。本文将通过探讨惰性求值机制,深入解析其工作原理及实现方式,进而探讨如何在MoonBit实现Haskell求值语义。
📄️ 实现 Haskell 求值语义(系列二)
记得之前那篇讲述如何使用 MoonBit 实现 Haskell 求值语义的超硬核编程实践的文章吗?如果你错过了,指路👉8000字都是干货!教你如何用MoonBit实现Haskell求值语义
📄️ 实现 Haskell 求值语义(系列三)
本期文章为在MoonBit中实现惰性求值的第三篇。在上一篇中,我们了解了let表达式的编译方法以及如何实现基本的算术比较操作。这一篇文章中,我们将实现一种基于上下文的优化方法,并添加对数据结构的支持。
📄️ 如何用 MoonBit 实现 diff?
你使用过 Unix 下的小工具 diff 吗?