【问题标题】:Free Monad to generate blog feed in Scala免费 Monad 在 Scala 中生成博客提要
【发布时间】:2015-01-12 15:07:30
【问题描述】:

假设我需要为博客站点添加生成 RSS/Atom 提要。我正在考虑“Feed Monad 解释器”pattern。也就是说,我将定义一个带有原语BlogBlogPost 的DSL,一个Free monad,它只是这些原语的一个树,以及将Free monad 树转换为XML 的RSS/Atom“interpeters”。

有意义吗?

【问题讨论】:

    标签: scala functional-programming rss free-monad


    【解决方案1】:

    并非如此,因为 XML 不是一种解释;它是一种数据结构,它具有指称而不仅仅是操作语义[1]。因此,您可以定义您的原语,并拥有它们的树,并将该纯树转换为...另一个表示 XML 的纯树。不需要 monad,这只是一个纯粹的数据转换。

    [1] 假设我正确理解了这些术语

    【讨论】:

    • 谢谢。我想你是对的。现在我在想,即使我“解释” Free monad 来获取博客数据或将其呈现为 XML/HTML,这种方法也没有意义,因为提要结构是固定的并且非常简单。
    【解决方案2】:

    一般来说,我会建议只使用模板系统和输出 (XML) 字符串,而不是创建和转换 XML 文档,因为在这个用例中,这可能会非常昂贵且收益甚微。

    确保您有一个测试套件来解析生成的 XML 字符串,以确认它是有效的并且不会破坏人们消费提要,但除此之外,模板应该更好地工作!

    【讨论】:

    • 谢谢。你说的对。我将博客数据直接呈现为 RSS 格式的字符串。我正在使用validator.w3.org/feed 验证它。
    猜你喜欢
    • 1970-01-01
    • 2022-10-15
    • 2018-07-08
    • 1970-01-01
    • 2014-04-03
    • 2020-03-07
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多