functional-programming - 如何以不可变/功能的方式实现可变更改的多个路径?
问题描述
我正在乱写PDF,它使您在编程中有时会遇到的一个特殊问题变得明显,我想知道您将如何以一种功能性的方式解决它。
生成 PDF 时,首先生成页面内容,然后先编写内容的长度,然后才是实际内容。这就是它的要点。所以你有这些步骤:
- 生成字符串输出,但不要写
- 写入输出长度
- 写实际的字符串输出
此外,在第一步中,我们可能会修改一些内部记录。在 PDF 渲染中,在某些情况下,您会创建一个延迟构造的对象 ID 映射。因此,当我们生成初始字符串输出时,我们也在可变地更改一些基本记录。
你如何区分这些担忧?函数式编程语言如何解决这种情况?
我开始成像,嗯:
map
生成字符串- 但是然后映射同时更新不可变的核心对象?
我不明白它是如何工作的。我试图从函数式语言中找到如何简化此 PDF 渲染过程或简化其部分的灵感。
这有点像railscontent_for :x
注入。在呈现模板时,您可以指定可以从其他地方向其中注入内容的 portlet。你如何以功能性的方式做这种事情?
解决方案
推荐阅读
- r - data.table - 汇总数据 - `by` 和 `keyby` 之间的区别?
- mysql - 数据库问题的分页问题
- javascript - 为什么 preventDefault() 在 Safari 上不起作用?
- reactjs - 类型错误:this.props.router 未定义
- python - python中的Shift Aritmetic Right操作
- python - 如何将设置环境变量的批处理脚本与python脚本(3.7)集成?
- javascript - 在提交之前是否有另一种方法可以在 HTML 表单中添加多个标签?
- ios - 如何防止从 UIImageView 中删除图像?
- javascript - Gulp sass 正在吃 scss 文件而没有给出任何错误
- reactjs - 未捕获的 ReferenceError:RegeneratorRuntime 未在 React 中定义