二维语法

2024-12-10

本文介绍了Racket编程语言中的一种二维语法扩展#2d。它允许开发者使用ASCII艺术风格的网格来编写表达式,例如条件表达式和模式匹配。#2d语法在读取阶段将网格转换为带括号的表达式,然后在解析阶段进行求值。它支持单元格合并以简化某些表达式。文章还介绍了DrRacket编辑器中用于编辑#2d表达式的快捷键以及相关的库函数,例如2dcond、2dmatch、2dtabular等,并解释了如何使用这些函数构建和操作二维表达式。

阅读更多
未分类 二维语法

编程中的范畴论

2024-12-02

本教程面向 Racket 程序员,旨在解释计算系统背后的数学思想,特别是范畴论。教程探讨了如何用范畴论的视角重新诠释编程概念,并用编程语言构造来描述抽象的范畴论概念。教程涵盖了范畴、函子、自然变换等核心概念,以及它们在 Racket 编程语言中的表示和应用。目的是帮助程序员掌握用范畴论进行抽象和泛化,从而提升思维、解决问题和系统设计的能力。

阅读更多
未分类 Racket编程

Pollen:将书籍视为程序

2024-10-28

Pollen 是一个旨在帮助作者制作功能强大且美观的数字书籍的出版系统。其核心观点是:数字书籍不应仅仅是数据,而应该是一个程序。Pollen 建立在 Racket 编程语言的基础上,允许作者使用标记语言进行创作,并利用编程能力实现自动化任务、添加交叉引用以及从其他来源获取数据等功能。

阅读更多
未分类 数字出版 Pollen