主要观点:介绍了 Donald Knuth 段落填充算法的简单实用纯文本变体,可通过折叠表达,其运行时间与输入长度线性相关且比经典贪婪文本流算法效果好。
关键信息:定义了flow-paragraph
及其辅助函数flow
和build-lines
,flow
通过折叠实现算法,best-break
用于找到最佳断行方式,enumerate-breaks
和line-candidates
用于枚举断行候选,length-cost
计算行长度成本等。
重要细节:用Word
表示单词(默认为字符串),Line-Info
表示行信息,line-candidates
是算法最复杂部分,按规则遍历后缀生成候选断行,且对于段落最后一行成本设为 0,length-cost
根据长度与目标长度差异的平方计算成本,line-candidates
运行时间为 O(1),整个flow-paragraph
算法运行时间可能与输入长度线性相关。还提到有增强部分待完成及相关许可证等信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。