首页 > 解决方案 > 如何以不可变/功能的方式实现可变更改的多个路径?

问题描述

我正在乱写PDF,它使您在编程中有时会遇到的一个特殊问题变得明显,我想知道您将如何以一种功能性的方式解决它。

生成 PDF 时,首先生成页面内容,然后先编写内容的长度,然后才是实际内容。这就是它的要点。所以你有这些步骤:

  1. 生成字符串输出,但不要写
  2. 写入输出长度
  3. 写实际的字符串输出

此外,在第一步中,我们可能会修改一些内部记录。在 PDF 渲染中,在某些情况下,您会创建一个延迟构造的对象 ID 映射。因此,当我们生成初始字符串输出时,我们也在可变地更改一些基本记录。

你如何区分这些担忧?函数式编程语言如何解决这种情况?

我开始成像,嗯:

  1. map生成字符串
  2. 但是然后映射同时更新不可变的核心对象?

我不明白它是如何工作的。我试图从函数式语言中找到如何简化此 PDF 渲染过程或简化其部分的灵感。

这有点像railscontent_for :x注入。在呈现模板时,您可以指定可以从其他地方向其中注入内容的 portlet。你如何以功能性的方式做这种事情?

标签: functional-programmingimmutability

解决方案


推荐阅读