gpt4 book ai didi

javascript - Haskell Fay 序列异步调用

转载 作者:行者123 更新时间:2023-11-29 14:51:09 24 4
gpt4 key购买 nike

最近,我决定将一些 javascript 代码移植到 Fay,这样我就可以保证类型的正确性,这样我就可以以一种简洁的方式处理异步(也可以进行实验)。我构建了一些 javascript 对象,它们的唯一目的是同步并行的 ajax 调用。我是 Haskell 的新手。

在 Fay 中,我希望触发一些 ajax 调用,并使用,比方说,Control.Monad.Parallel.sequence使它们同步。但是,我陷入困境并且迫切需要指导,因为 fay-jquery AJAX functions不要为成功/失败回调返回 monad,this example in the fay snaplet也没有。它们都返回一个 Fay () monad,这似乎只是为了将惰性 haskell 调用排序为严格的 javascript 语句,而我有点期待类似 (Fay (), IO (Either SuccessResult FailureResult)) 的元组,因为触发关闭 AJAX 请求会导致两种不同的操作。

我对此有很多疑问:

  1. continuation monad 是我要找的吗?
  2. 是否有任何模块可以与 Fay 一起使用,并将这个 monad 用于异步 javascript?
  3. 由于 fay-jquery's AJAX functions 的副作用在返回的 Fay () 之后绑定(bind)或排序的任何内容之后发生,这是否使函数不纯?
  4. 我注意到一个 continuation monad in the Fay repo - 为什么 Fay 本身没有使用它?我唯一能找到的是 this gist which wraps async node.js fs calls .

非常感谢您的回答!他们将极大地帮助我对这些东西的不稳定理解。

最佳答案

  1. 是的。 Cont 示例基本上执行您想要的操作,没有错误处理。
  2. ^
  3. 这取决于您对“不纯”的定义。我想说的是,在执行完所有效果之前返回的函数仍然可以是纯函数。 Haskell 中几乎所有惰性计算都是这种情况。参见例如 Haskell 的 forkIO::IO () -> IO ThreadId
  4. 我不确定你所说的“在 Fay 本身”是什么意思。我认为 Prelude 不应该使用这个,但其他库可以使用 Cont,如果你想要这个,请随意从示例中制作一个包。

关于javascript - Haskell Fay 序列异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25666404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com