问题标签 [purescript]

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 回答
141 浏览

purescript - 从 javascript 继承的惯用方式是什么?

例如 javascript 库有这个层次结构

和这个功能

你如何在 PureScript 中编写这个函数?

0 投票
2 回答
1376 浏览

arrays - 如何将字符列表转换为纯脚本中的字符串

我正在寻找一种List Char -> String在 Purescript 中编写函数的惯用方式。

这似乎是一件简单的事情,但我是 Purescript 的新手,并且已经浏览了一段时间的文档,但没有任何进展!

背景信息:我正在将一个简单的函数从 Haskell 移植到 Purescript

这会生成一个指定长度的字符串。将代码转换为使用操作非常容易List Char(其中List来自Data.ListPurescript)。在 Haskell[Char]中是一样的,String所以不需要其他处理,但是,我在 Purescript 中找不到转换List Char为原生的函数!String

我的搜索引导我进入fromCharArray :: Array Char -> StringData.String但是我找不到从转换List Char为的方法Array Char

我可以通过折叠List Char和构建Array Charusing在它们之间手动转换snoc,但我肯定错过了一个内置解决方案,用于在 Purescript 中看似基本的字符串操作!

编辑: fromList用于从任何Unfoldable(例如数组)转换为List. 如果有更惯用的方法来实现这一点,仍然会留下这个问题。

0 投票
3 回答
629 浏览

purescript - Purescript 中的新类型是否可以进行约束?

是否可以对 Purescript 中的类型构造函数施加某些约束?例如:

0 投票
1 回答
423 浏览

haskell - 在 Purescript 中操作自由单子

为什么要隐藏“视图”数据结构和相关的运算符Control.Monad.Free等?purescript-freeFreeViewtoView

使用通常的 Free Monad 公式 -

并给定一个仿函数,例如-

我可以编写一些简单(虽然丑陋)的代码来折叠链式 PutStrLn 调用,如下所示 -

在不使用任何实际数据构造函数的情况下,是否collapseChained可以使用 Purescript 导出的函数?Control.Monad.Free

0 投票
0 回答
149 浏览

purescript - purescript 类型签名无法编译,没有代码可以正常工作;建议的签名不起作用

以下代码会产生此错误:

错误:

如果我省略 的类型签名driver',则不会出现编译器错误,正如我所希望的那样。如果我要求psc签名(通过将类型替换为_),建议如下:

当我将其剪切并粘贴到代码中而不是原始类型时,错误与上述相同。

在第二种情况下,这实际上是有道理的,因为量词为 a 打开了一个新的范围,应该在 main' 的签名中捕获它。但即使我删除forall a,类型错误仍然存​​在。

garyb 今天早些时候在#purescript 上说这可能是类型检查器中的一个错误。无论如何,我都会在此处发布此内容,直到确定事实为止。

谢谢!(:

0 投票
1 回答
152 浏览

purescript - 在 jsPerf 中测试纯脚本函数

我想比较jsPerf中两个 PureScript 函数的性能。

我需要进行哪些编译以及需要将哪些部分放入“设置”和每个片段框?

使用 psc 或纸浆。

0 投票
1 回答
755 浏览

purescript - >>= 在纯脚本中是什么意思?

我正在阅读purescript wiki,发现以下部分do>>=.

是什么>>=意思?

做符号

do 关键字为一元表达式引入了简单的语法糖。

这是一个示例,使用 monad 作为Maybe类型:

maybeSum接受两个类型的值,Maybe Number如果两个数字都不是,则返回它们的总和 Nothing

使用 do 表示法时,返回类型必须有对应的 Monad 类型类实例。语句可以有以下形式:

  • a <- x哪个脱糖x >>= \a -> ...
  • xx >>= \_ -> ...如果这是最后一个语句,则它对或只是 x 脱糖。
  • 一个 let 绑定let a = x。请注意缺少in关键字。

示例maybeSum desugars to::

0 投票
1 回答
248 浏览

purescript - 如何移除一个 Aff(类似于 Eff 的 unsafePerformEff)?

我正在尝试获取通过 Node.FS.Aff.readTextFile 从文件中读取的一些文件内容,因此使用异步效果。

但是我的问题更笼统。

所以我想得到LeftorRight值。如果它Eff不是Aff我可以使用的地方

谢谢

0 投票
1 回答
229 浏览

purescript - 在纯脚本中;-> 和 => 有什么区别?

在学习 PureScript 教程时,代码示例开始使用“=>”,但没有引入它。结果我不明白什么时候使用'=>'而不是'->'。

例如,这使用'=>':

因为这使用'->':

0 投票
2 回答
2208 浏览

purescript - 如何在 PureScript 中读取文件 (readFile)

在测试时,我想从磁盘读取和写入文件(JSON 输入,JSON 输出)。我如何在 PureScript 中做到这一点?在 Haskell 我有类似的东西

到目前为止,我所有的尝试都失败了,包括尝试使用readFilefrom import Node.FS.Sync

顺便说一句,如果在我的 JSON 文件中有任何其他(更好的)读取方式,请告诉我。(我不是 JavaScript 专家,但我想将一些 - 严格 - Haskell 代码移植到 JS 以便它可以在其他地方使用。)