问题标签 [fay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
106 浏览

haskell - 连接遗留的 Haskell 代码和 Fay 代码

我有一些 Haskell 代码,并且想要一个Fay脚本能够访问它。问题是 Haskell 代码使用单子。Fay 不支持任意单子。如何让我的 Haskell 代码与 Fay 一起使用?也就是说,Fay 脚本需要能够访问 Haskell 脚本中的函数。我该怎么办?

0 投票
0 回答
359 浏览

haskell - Yesod Fay - Uncaught ReferenceError: XXX is not defined

我正在尝试设置 Yesod,同时为我的网站前端运行 Fay。它主要按我的预期工作,就像我写的任何 Fay 运行一样。问题是我在生成的 JS 中遇到了 Uncaught ReferenceError 。

这是相关JS的简短版本:

以及生成它的 Fay 代码:

我怀疑 yesod-fay 包正在添加额外的调用,但我不确定如何避免这种情况发生。https://github.com/fpco/yesod-fay/blob/master/Yesod/Fay.hs#L124是我认为可能涉及的功能。

0 投票
1 回答
229 浏览

javascript - 如何安装fay?

我正在运行 ubuntu 13.10,安装 fay 时遇到问题。我使用 sudo apt-get install haskell-platform . 我尝试cabal install fay并收到以下消息:

我试过 install cpphs,但我已经有了。

最后,我尝试type-eq自行安装,预计它依赖于cpphs.

我该怎么办?提前感谢您的帮助。

0 投票
1 回答
105 浏览

haskell - Haskell cabal 在构建期间编译 .js

假设我正在构建一个使用 haskell 作为服务器端和客户端代码的 Web 应用程序。在构建阶段,我想ghc用一些 haskell to js transpiler 编译服务器端代码和客户端代码。

haskell 转译器工具公开了一个我需要提供文件的可执行.hs文件,它将编译为.js文件。如何在 cabal 中指定在构建阶段运行外部程序?我可以看到,该UserHooks字段buildHook具有返回类型IO(),所以理论上我可以使用例如 shelly 库来执行 shell 代码来运行转译器,但我不知道这是否是最干净的解决方案。

0 投票
1 回答
83 浏览

fay - fay 找不到模块“Control.Applicative”

foo.hs

然后

返回

Fay 中是否可以进行应用程序编程?

0 投票
1 回答
416 浏览

haskell - fay 项目的 .cabal 文件示例

我有一个用 scotty 编写的简单网络应用程序。我想使用 fay 生成前端 JS 代码,并在前端和后端之间使用共享类型。

目前,我使用cabal run: 在我的 .cabal 文件中运行我的应用程序,我定义了一个“可执行文件”和“构建依赖”取决于base. 当我在“build-depends”中包含“fay”和“fay-base”时,编译失败,因为Prelude它不明确。

我知道“fay-base”应该替换标准前奏,但我仍然想在后端代码中使用标准前奏。

那么,我应该如何编写我的 .cabal 文件以及我应该在我的 .hs 文件中使用哪些语言扩展名,以便 std Prelude 和 fay Prelude 可以共存?这是正确的方法吗?

我正在使用 fay-0.20.1.1。

0 投票
1 回答
196 浏览

javascript - Haskell Fay 序列异步调用

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

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

我对此有很多疑问:

  1. 延续单子是我要找的吗?
  2. 是否有任何模块可以与 Fay 一起使用,并将这个 monad 用于异步 javascript?
  3. 由于fay-jquery 的 AJAX 函数的副作用发生在返回的 Fay() 之后绑定或排序的任何内容之后,这是否会使函数不纯?
  4. 我注意到Fay repo 中有一个 continuation monad - 为什么 Fay 本身没有使用它?我唯一能找到的是这个包含异步 node.js fs 调用的要点

答案将不胜感激!他们会极大地帮助我对这些东西的不稳定理解。

0 投票
1 回答
30 浏览

fay - 将记录传递给 ffi

当我将记录传递给javascript时,它可以工作:

但是当函数不是单态时,记录不会被评估,需要手动完成:

这是一个简单的情况,当额外的类型Fay$$_不是那么烦人时,但是如果我将带有类型参数的更复杂的结构传递给 js,那么添加就Fay$$_不会解决它。我想知道规则,什么时候应用对本机 js 类型的评估,什么时候不应用。

0 投票
1 回答
29 浏览

fay - 从 Fay newtype 派生 Monad 以启用 do 表示法

我想创建不同类别的副作用函数,因此我可以将一些副作用标记为比其他副作用更安全。

我想在副作用单子上创建一个新类型并在 do 表示法中使用它所以我这样声明它:Fay

A至此,编译器找不到base包。有可能以某种方式做到这一点吗?

>>=我仍然可以为、return等创建自己的版本ReadFay,但能够在do表示法中使用它会很好。

或者,有没有更好的方法,如何创建与我的方法不同的副作用类别?

0 投票
0 回答
165 浏览

haskell - 序列化 Maybe 类型

序列化类型的正确类型是什么Maybe

鉴于我在服务器上有一些Maybe类型的数据结构,并且我用showToFay函数对其进行序列化,那么它不会成为{"instance":"Nothing"}or之一{"instance":"Maybe","slot1":<actual_value>},但它nullJust. 那么我不可能在客户端正确反序列化它。

我现在正在使用该data MyMaybe a = MyNothing | MyJust a类型,但这很难处理,因为我需要一直进行模式匹配,而且我不能使用在Maybe.