- 提供了多个链接:mmap(blog)、Posts、About、Atom Feed,时间为 2025 - 06 - 01 。
- 介绍了组合子(combinator)的概念:是从程序片段构建程序片段的函数,在函数式编程中,组合子库强调自底向上的程序构建,定义了核心数据类型和构造函数、组合子。
- 描述了处理二维 ASCII 字符块的组合子库,以 OCaml 为例说明,主要类型是
box
(二维 ASCII 字符数组),有多种构造方式如of_string
、fill
等,还有组合box
的方式如beside
(水平堆叠)、above
(垂直堆叠)等,还介绍了处理数组的组合子hconcat
(水平拼接)、vconcat
(垂直拼接)、grid
(二维数组排列)。 给出了组合子库的几个示例:
- Sierpinski 三角形的绘制程序,代码简洁。
- 螺旋渲染的修改版本程序,通过递归和组合子实现。
- 用组合子渲染书籍元数据数组的
make_table
函数,将记录转换为表格形式。
- 结尾部分鼓励读者实践组合子,如在自己喜欢的语言中实现、用于可视化复杂数据、研究相关图形对应内容等。
- 附录部分提到当前的文本框实现不是最有效的,组合盒子在循环中有二次复杂度,更复杂的设计会更优,但简单方法对屏幕上的数据足够。还给出了简单实现的
box
模块代码。 - 提及类似文章:ONNX introduction、Effective design docs、Stepanov’s biggest blunder、Static types are for perfectionists、Transposing tensor files。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。