问题标签 [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 - 不明白 Fay 中的这种 liftM2 行为
我有这个行为符合预期的haskell代码:
然而,当转换为 Fay 时,它不会进行类型检查:
编译错误是:
我不完全关注这里的问题。实际上,我什至尝试在 GHC 代码中删除 Control.Monad 的导入,并将 liftM2 粘贴到 Fay 代码中,但它仍然可以正确地进行类型检查......在 Fay 中使用诸如 liftMx 等函数的任何选项,或者我错过了完全在这里?
这是 Fay 0.16.0.3... 也许我应该尝试升级到 0.17?
haskell - fay 生成文件的大小
我尝试了 fay-jquery 并且包含的示例 test.hs 文件导致了 150 kb 的 js 文件。即使使用闭包编译,它仍然是 20 kb。
我知道它必须带有运行时、stdlib 和 jquery 包装器。
我可以告诉 fay 不要生成 stdlib(--no-stdlib 和 --no-builtins 标志)。但我不知道如何告诉它不包含 jquery 代码。
所以我的问题是,我怎样才能将这些静态部分拆分成一个单独的 js 文件并且只生成特定于模块的代码?
这样大部分代码将只加载一次(并缓存),我可以为单独的网页创建许多较小的 js 文件。
fay - 使用 Fay 编译库:隐藏包 'base'
我在使用 Fay 将工作中的 Haskell 库编译为 JavaScript 时遇到问题。
我相信我已经使用 cabal-dev 成功安装了 Fay,并设置了 HASKELL_PACKAGE_SANDBOX 环境。
当我尝试编译时,我得到以下信息:
使用ghc-pkg list
我可以看到它base-4.6.0.1
已暴露。
关于下一步尝试什么的任何提示?
谢谢!ñ
jquery - 如何在 Fay 中获取“this”对象?
鉴于此 HTML:
我正在尝试使处理程序依赖于“this”的值,例如以下 JavaScript 代码:
如何在Fay中做到这一点?我没有找到执行此操作的 API。看来直接从 main 调用 ffi 是不可能的:
我得到“未定义 Test$ffi”。我设法使用以下代码调用 ffi:
但是现在“this”指的是一些 Fay 特定的对象,并且没有属性“id”。
macos - 无法在 Mac OS X Mavericks 上安装 Fay
我正在努力cabal install fay fay-base
。但它失败了,这是日志:
请帮忙。
javascript - Fay,渲染循环和鼠标事件
序幕。我是 Haskell 和函数式编程的新手,但我忍不住用 Haskell 编码,因为它太令人兴奋了!因此,我的问题可能非常简单和/或微不足道。我还在读“Learn You a Haskell for Great Good”,Monads 还在路上。
考虑以下行为:
- 创建事件堆栈(简单的数组)
- 监听
mousemove
事件,当事件触发时,将它们压入堆栈
- 监听
- 运行渲染循环:
- 用于
requestAnimationFrame
启动循环 - 每次检查是否有堆叠的事件
- 从堆栈中获取最后一个事件,用它做一些东西并渲染
- 空栈
- 请求下一帧
- 用于
我无法意识到如何从事件中获取感兴趣的价值,例如 pageX 或 clientX,看起来我必须对数据定义做一些事情,而我坚持下去。请帮忙。
PS 我也无法理解如何检查外部函数的结果,例如,当我尝试获取 DOM 元素时,结果可能是 element 或null
,因此,比如说,getElById
不纯,我需要检查我得到的结果。如何实现?似乎我可以使用类似的东西:data Element = Null | Element ...
然后模式匹配结果,但是如何让外部函数知道预期的结果?
更新
这里所需逻辑的工作示例:
haskell - 您的 FFI 声明需要类型签名
有时我会遇到奇怪的问题,请考虑以下示例:
这编译:
它也是这样:
但是,如果我将辅助函数放在 where 块中,则会出现编译错误:
fay: your FFI declaration needs a type signature pageX = ffi "%1['pageX']"
fay: your FFI declaration needs a type signature: getParent = ffi "%1.parent()"
例如
和
请注意,traceEventCoords
在第一个示例中不调用此问题。它是一个错误吗?
PS 第二个例子只是一个例子,最终的代码会被重构一点,但它是为了演示目的。
haskell - Fay:无法解析限定名 ffi?
我已经安装了:
- fay-0.19.0.1
- fay-base-0.19
我正在尝试编译
和
并得到
请注意,我可以使用 fay-jquery、fay-text 等进行编译。编译和运行的完整源文件(使用 fay-base)并在执行它们时执行我期望它们执行的操作。但是,一旦我尝试ffi
在其中任何一个中使用,我就会收到此错误。
fay-jquery、fay-dom 和其他使用 ffi 的包在我导入它们时似乎表现良好。
我不知道还有什么要说的?我在运行 Ubuntu 的 ghc 7.6.3 上。
帮助将不胜感激:)
haskell - 在 Fay 中将 Char 转换为 ASCII 码
有没有办法将类型值转换为Char
Fay 中的数字 ASCII 代码?
(Haskell Prelude 提供了函数fromEnum
和等效函数ord
,但我在 Fay Prelude 中没有看到任何类似的东西。)
包的文档fay-base
记录了很多类型类,但由于 Fay 不支持类型类,我认为fromEnum
也不支持?
haskell - 在 cabal 沙盒中使用 Fay
我刚刚开始使用 cabal 沙箱和 Fay。然而,Fay 似乎无法自动找到这些包裹,大概是因为它们不在“全球”阴谋集团包裹数据库中。我尝试遵循此 wiki 页面上的建议但未成功,对我来说,它看起来像:
但是Fay仍然抱怨它cannot find package fay-base
。有什么我可以做的吗,或者我必须在沙盒之外安装 Fay 吗?