问题标签 [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.
haskell - 连接遗留的 Haskell 代码和 Fay 代码
我有一些 Haskell 代码,并且想要一个Fay脚本能够访问它。问题是 Haskell 代码使用单子。Fay 不支持任意单子。如何让我的 Haskell 代码与 Fay 一起使用?也就是说,Fay 脚本需要能够访问 Haskell 脚本中的函数。我该怎么办?
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是我认为可能涉及的功能。
javascript - 如何安装fay?
我正在运行 ubuntu 13.10,安装 fay 时遇到问题。我使用 sudo apt-get install haskell-platform
. 我尝试cabal install fay
并收到以下消息:
我试过 install cpphs
,但我已经有了。
最后,我尝试type-eq
自行安装,预计它依赖于cpphs
.
我该怎么办?提前感谢您的帮助。
haskell - Haskell cabal 在构建期间编译 .js
假设我正在构建一个使用 haskell 作为服务器端和客户端代码的 Web 应用程序。在构建阶段,我想ghc
用一些 haskell to js transpiler 编译服务器端代码和客户端代码。
haskell 转译器工具公开了一个我需要提供文件的可执行.hs
文件,它将编译为.js
文件。如何在 cabal 中指定在构建阶段运行外部程序?我可以看到,该UserHooks
字段buildHook
具有返回类型IO()
,所以理论上我可以使用例如 shelly 库来执行 shell 代码来运行转译器,但我不知道这是否是最干净的解决方案。
fay - fay 找不到模块“Control.Applicative”
foo.hs
然后
返回
Fay 中是否可以进行应用程序编程?
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。
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 请求会导致两种不同的操作。
我对此有很多疑问:
- 延续单子是我要找的吗?
- 是否有任何模块可以与 Fay 一起使用,并将这个 monad 用于异步 javascript?
- 由于fay-jquery 的 AJAX 函数的副作用发生在返回的 Fay() 之后绑定或排序的任何内容之后,这是否会使函数不纯?
- 我注意到Fay repo 中有一个 continuation monad - 为什么 Fay 本身没有使用它?我唯一能找到的是这个包含异步 node.js fs 调用的要点。
答案将不胜感激!他们会极大地帮助我对这些东西的不稳定理解。
fay - 将记录传递给 ffi
当我将记录传递给javascript时,它可以工作:
但是当函数不是单态时,记录不会被评估,需要手动完成:
这是一个简单的情况,当额外的类型Fay$$_
不是那么烦人时,但是如果我将带有类型参数的更复杂的结构传递给 js,那么添加就Fay$$_
不会解决它。我想知道规则,什么时候应用对本机 js 类型的评估,什么时候不应用。
fay - 从 Fay newtype 派生 Monad 以启用 do 表示法
我想创建不同类别的副作用函数,因此我可以将一些副作用标记为比其他副作用更安全。
我想在副作用单子上创建一个新类型并在 do 表示法中使用它,所以我这样声明它:Fay
A至此,编译器找不到base
包。有可能以某种方式做到这一点吗?
>>=
我仍然可以为、return
等创建自己的版本ReadFay
,但能够在do表示法中使用它会很好。
或者,有没有更好的方法,如何创建与我的方法不同的副作用类别?
haskell - 序列化 Maybe 类型
序列化类型的正确类型是什么Maybe
?
鉴于我在服务器上有一些Maybe
类型的数据结构,并且我用showToFay
函数对其进行序列化,那么它不会成为{"instance":"Nothing"}
or之一{"instance":"Maybe","slot1":<actual_value>}
,但它null
在Just
. 那么我不可能在客户端正确反序列化它。
我现在正在使用该data MyMaybe a = MyNothing | MyJust a
类型,但这很难处理,因为我需要一直进行模式匹配,而且我不能使用在Maybe
.