问题标签 [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 投票
0 回答
1163 浏览

javascript - 函数式反应式编程——Fay 的表达力够吗?

因此,我正在做一个相当复杂的 javascript/html 客户端,其中包含许多 ajax 调用和其他回调主义的参与。我正在考虑将 Fay 用于此目的。我知道榆树。试过了,喜欢 FRP 元素。现在我想知道在 Fay 中是否有类似的结构。

目前Fay中有FRP的具体例子吗?

编辑:迁移到 Programmers.Stackexchange:https ://softwareengineering.stackexchange.com/questions/186102/functional-reactive-programming-is-fay-expressive-enough

0 投票
1 回答
277 浏览

haskell - 在 Fay 中包含文件/目录的正确方法是什么?

我正在尝试使用 Fay 将 haskell 编译为 JS,并在--include选项之后使用一个目录,如下所示:

fay --include src\Tmv src\Tmv\Client\Main.hs

在 src\Tmv 中有一个 SharedTypes.hs 文件,它定义了一个Tmv.SharedTypes在 Client\Main.hs 中使用的模块。我收到以下错误:

-v 选项不起作用。我已经尝试了参数的几种变体,例如。绝对路径、引号、转义(双)反斜杠。
配置:fay 0.10.1.0、ghc 7.4.2 (i386)、Windows 7 x64

0 投票
1 回答
306 浏览

haskell - Haskell 安装失败

我正在尝试安装fay但 src 编译失败

我不知道这是我的错误还是包装问题。

我正在使用:arch linux、ghc-7.4.2、cabal-1.16.0.3

0 投票
1 回答
279 浏览

haskell - cabal 用 fay 安装麻烦

我正在尝试运行cabal install fay fay-base。但是,我收到以下错误:

当它要求我“以正常方式安装一次,然后以所需方式安装”时,我不确定它要求我做什么。

有任何想法吗?

原帖:

我正在尝试运行cabal install fay fay-base。但是,我收到以下错误:

我在另一个包安装时收到了这个错误,但我不记得是哪个(我相信它是游戏包之一,所以更容易放弃)。我试过用谷歌搜索 -lHSsplit 并且找不到任何帮助。

有谁知道我需要安装什么依赖项?

cabal install split这已通过按照 Daniel Fischer 的建议安装 split 来解决。

提前致谢!

0 投票
1 回答
460 浏览

haskell - Fay 代码中的持久模型类型

我正在使用 Yesod 脚手架站点(yesod 1.1.9.2),昨天花了几个小时来了解 Fay 和 Yesod 的基本用法。我想我现在了解了使用 Fay 向页面添加大量 AJAX 功能的预期工作流程(我在这里会有点迂腐,因为其他人可能会发现逐步的帮助):

  • 将数据构造函数添加Example aSharedTypes.Command.
  • 在 中的表达式case readFromFay Command of ...Handler.Fay.onCommand,添加一个与我的新数据构造函数匹配的案例。
  • 在 /fay 中创建一个 Fay 文件“Example.hs”,以 fay/Home.hs 为模板。在这里的某个地方,使用表达式call (Example "foo") $ myFayCallback
  • 为将使用我正在生成的 Javascript 的页面定义一个路由和处理程序。在处理程序中,使用$(fayFile' (ConE 'ScriptR) "Example.hs").

我的问题:在当前的 Yesod/Fay 架构中,我应该如何与我的 Fay 代码共享我的持久模型类型?

在 Fay 文件中使用import Model不起作用 - 当我尝试加载使用此 Fay 文件的页面时,我在浏览器中收到错误(我猜是 Fay 提醒我错误的标准方式),表明它不能找到模块“模型”,但它只搜索了以下目录:

  • projectroot/cabal-dev//share/fay-0.14.2.0/src
  • projectroot/cabal-dev/share/fay-base-0.14.2.0/src
  • projectroot/cabal-dev/share/fay-base-0.14.2.0
  • 项目根/fay
  • projectroot/fay-shared

我还尝试在 SharedTypes.hs 中导入和重新导出模型,但这产生了相同的错误。

有没有办法做到这一点?如果不是,为什么不呢?(我是 Haskell 和 Yesod 的相对菜鸟,所以回答“为什么不呢?”这个问题真的很有帮助。)

编辑:

我刚刚意识到在这个问题的标题中提到 Persistent 可能会产生误导。为了更清楚我想要做什么:我只想能够使用 Yesod 为我的模型定义的相同数据类型在我的 Fay 代码中表示数据。例如,如果我在 config/models 中定义了一个模型......

...我希望能够定义一个接收和/或返回类型值的 AJAX“命令”,Foo并让我的 Fay 代码在Foos 中处理,而无需编写任何反序列化代码。我知道我将无法直接从我的 Fay 代码中使用 Persistent 的任何查询功能;我只在标题中提到了 Persistent,因为我将 Model.hs 和 config/models 中的所有内容都与 Persistent 联系在一起。

0 投票
1 回答
340 浏览

jquery - Fay JQuery 使用元素数组

首选方法是什么,如何计算选择器选择的元素数量?

我能想到的一种方法是调用 JQuery 的size

另一种方法是从函数调用中获取列表,然后计算元素。检索元素的函数类型可能是:

有谁知道,如何实现?如何描述 javascript 类型和 haskell 类型之间的映射?

0 投票
2 回答
186 浏览

node.js - 需要来自nodejs的fay代码

是否可以在 nodejs 的服务器端从其他简单的 javascript 文件中需要 fay 编译的模块?那太好了。也许编译器中有一些选项可以生成与 commonjs 兼容的模块?

0 投票
0 回答
237 浏览

haskell - 与 Fay 并行的多个 ajax 查询

我正在寻找以并行方式运行两个 AJAX 调用的移植 JS 代码,但在操作之前都需要完成这两个调用。使用 JQuery,您可以:

现在我不确定如何处理 Fay。haskell 的多线程部分不可用。我真的不想要一个状态单子,因为我希望两个提取并行运行,而不是顺序运行。

我在 Fay 的源代码中发现了这个例子,Cont.hs。我不确定它是否能真正解决问题,但无论如何如果我只运行“fay Cont.hs”它就不会编译;它抱怨不知道 GHC.Base.Monad。这是 Fay 的现任 GIT 负责人。

编辑:如果可能的话,我想取悦 Haskell 语义,如果不是......那么是的,包装 jquery 的“then”。我不确定如何使用 Fay 实现延续或 FRP,我们将不胜感激(对于 FRP ,Fay 是否足够表达是值得怀疑的)。因此,作为第二种选择,我只包装“then”,但如果可能的话,我真的希望它像 JS 那样接受任意数量的并发 ajax 请求(可能通过数组),这可能很难实现。我会自己试一试,但我想我不会成功。

在 fay-jquery 绑定中看到了这条评论:

我确实设法编译了 Cont.hs,我不得不使用 --no-ghc 标志。所以我会检查一下,虽然标志禁用了类型检查,但对此并不疯狂。

当我确信 Haskell 作为一种语言能够更好地解决此类问题时,不得不依赖 JS 库来进行此类操作是令人沮丧的。

EDIT2:所以看来我想要的是协程。我已经看到一些Haste代码在做相关的事情,但并没有完全做到这一点。我也会接受 Haste 或 GHCJS 解决这个问题。

EDIT3:在正常情况下,Haskell 似乎这样做了;我想它可以与 GHCJS 和 Haste 一起使用,但在 Fay 中,我猜它可能必须是 JS 的包装......

0 投票
1 回答
87 浏览

fay - Fay:包含另一个 Fay 文件?

我有一个 Fay 文件,它是我的程序的核心,但是我需要一些帮助来实现我的逻辑,例如替换子字符串的方法。据我了解,如果我需要Hackage的许多Haskell库直接提供的方法,我不能使用那些Haskell库,但我必须将代码复制粘贴到我的项目中。所以这就是我所做的,我将“替换”函数与 MissingH 库中的其他助手一起复制粘贴到我项目的一个新文件中:Utils.hs。

Utils.hs 在 Fay 编译时没有问题。此外,我将它导入到我的主 Fay 文件中,并且我得到了一个主项目文件的 JS 文件,没有问题。但是在运行时我收到以下错误:

我认为 Fay 不会在我的主 JS 文件中包含辅助文件中的代码,因此我将两个 JS 文件都包含在加载 HTML 中。为了更加确定当我加载主文件时,utils文件被加载,我像这样加载它:

但尽管如此,我仍然得到错误。我尝试使用“--library”编译 Utils.hs,但没有帮助。

所以我的问题是,我需要哪种设置来实现生成的 JS 将找到我放在另一个 HS 文件中的辅助函数,知道在编译时,Fay(显然)可以毫无问题地找到它们?网上有这种设置的例子吗?我发现的大多数 Fay 使用都将所有代码都放在一个 HS 文件中,尽管它们经常使用来自 cabal 的外部 Fay 代码,例如 fay-jquery。就我而言,仅仅为这些简单的助手建立一个阴谋集团项目将是矫枉过正。

0 投票
2 回答
120 浏览

fay - fay:可以对字符串进行排序吗?

我似乎无法成功地用 Fay 对字符串进行排序。我意识到这与 Fay 不支持类型类的事实有关,但如果这不起作用,那似乎真的很痛苦......

输出是:

如果我理解正确,我无法自己定义类型类的实例,因为 Fay 不支持类型类(另外我猜如果 Fay 开发人员一开始就会这样做)。那么是否有解决方法,或者我必须使用 JS FFI 来进行字符串排序?

编辑: Jan Christiansen 的答案似乎是正确的:我可以使用“sortBy”进行排序,这乍一看似乎是正确的:

编译: