小编xny*_*hps的帖子

在Haskell中使用像酸状态一样的事件日志

我在一个项目中使用酸状态,我非常喜欢它.我喜欢在没有太多样板的情况下为简单的Haskell数据类型添加持久性是多么容易.

根据我的理解,酸状态记录事件的日志,而不是在每次更新时写出整个新状态.我正在寻找的是一种让我从应用程序中查看状态最近更改日志的方法,作为(只读)列表.(有点像git log,虽然我不需要分支或能够回到较旧的提交.)

当然,我可以写入我自己的单独日志文件,其中包含所有状态更改的详细信息,甚至可以将我的数据建模为差异列表,但我更喜欢自动的东西,并允许我尽可能使用纯数据类型.

是否存在类似于酸状态的库,或者可能用于酸性状态的某些内部功能?

persistence haskell acid-state

7
推荐指数
1
解决办法
344
查看次数

如何获得XEP-0136中的优先权:消息存档?

我的消息存档很好,消息很容易在数据库中保存但由于某种原因我想获取xep-0136的首选项集.

正如在xep-0136扩展中所述,我们需要发送这个IQ

<iq type="get" id="pref1">
    <pref xmlns="urn:xmpp:archive">
    </pref>
</iq>
Run Code Online (Sandbox Code Playgroud)

但在发送这个时,我收到错误,因为服务不可用,但我不知道这怎么可能?因为邮件存档工作正常.我需要实现一些其他模块.

错误iq

<iq
    xmlns="jabber:client"
    from="ramu_gmail.com@##.##.##.##"
    to="ramu_gmail.com@##.##.##.##/42117879931439208568472324"
    type="error"
    id="pref1">
    <pref xmlns="urn:xmpp:archive"></pref>
    <error code="503" type="cancel">
        <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></service-unavailable>
    </error>
</iq>
Run Code Online (Sandbox Code Playgroud)

伙计们请建议.谢谢.

xmpp ejabberd xmppframework

7
推荐指数
0
解决办法
406
查看次数

当我们已经有列表时,为什么Haskell需要Data.Sequence?

List是Haskell的默认数据类型,为什么我们仍然需要Data.Sequence?Data.Seq是否意味着可以随机访问的C样式数组?

如果是,我认为这意味着Data.Sequence存储有固定的内存缓冲区,因此,急切的评估类型.只是一个猜测,你会帮忙纠正吗?谢谢.

evaluation haskell list eager sequence

4
推荐指数
1
解决办法
688
查看次数