问题标签 [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.
purescript - 从 javascript 继承的惯用方式是什么?
例如 javascript 库有这个层次结构
和这个功能
你如何在 PureScript 中编写这个函数?
arrays - 如何将字符列表转换为纯脚本中的字符串
我正在寻找一种List Char -> String
在 Purescript 中编写函数的惯用方式。
这似乎是一件简单的事情,但我是 Purescript 的新手,并且已经浏览了一段时间的文档,但没有任何进展!
背景信息:我正在将一个简单的函数从 Haskell 移植到 Purescript
这会生成一个指定长度的字符串。将代码转换为使用操作非常容易List Char
(其中List
来自Data.List
Purescript)。在 Haskell[Char]
中是一样的,String
所以不需要其他处理,但是,我在 Purescript 中找不到转换List Char
为原生的函数!String
我的搜索引导我进入fromCharArray :: Array Char -> String
,Data.String
但是我找不到从转换List Char
为的方法Array Char
!
我可以通过折叠List Char
和构建Array Char
using在它们之间手动转换snoc
,但我肯定错过了一个内置解决方案,用于在 Purescript 中看似基本的字符串操作!
编辑: fromList
用于从任何Unfoldable
(例如数组)转换为List
. 如果有更惯用的方法来实现这一点,仍然会留下这个问题。
purescript - Purescript 中的新类型是否可以进行约束?
是否可以对 Purescript 中的类型构造函数施加某些约束?例如:
haskell - 在 Purescript 中操作自由单子
为什么要隐藏“视图”数据结构和相关的运算符Control.Monad.Free
等?purescript-free
FreeView
toView
使用通常的 Free Monad 公式 -
并给定一个仿函数,例如-
我可以编写一些简单(虽然丑陋)的代码来折叠链式 PutStrLn 调用,如下所示 -
在不使用任何实际数据构造函数的情况下,是否collapseChained
可以使用 Purescript 导出的函数?Control.Monad.Free
purescript - purescript 类型签名无法编译,没有代码可以正常工作;建议的签名不起作用
以下代码会产生此错误:
错误:
如果我省略 的类型签名driver'
,则不会出现编译器错误,正如我所希望的那样。如果我要求psc
签名(通过将类型替换为_
),建议如下:
当我将其剪切并粘贴到代码中而不是原始类型时,错误与上述相同。
在第二种情况下,这实际上是有道理的,因为量词为 a 打开了一个新的范围,应该在 main' 的签名中捕获它。但即使我删除forall a
,类型错误仍然存在。
garyb 今天早些时候在#purescript 上说这可能是类型检查器中的一个错误。无论如何,我都会在此处发布此内容,直到确定事实为止。
谢谢!(:
purescript - >>= 在纯脚本中是什么意思?
我正在阅读purescript wiki,发现以下部分do
以>>=
.
是什么>>=
意思?
做符号
do 关键字为一元表达式引入了简单的语法糖。
这是一个示例,使用 monad 作为
Maybe
类型:
maybeSum
接受两个类型的值,Maybe Number
如果两个数字都不是,则返回它们的总和Nothing
。使用 do 表示法时,返回类型必须有对应的 Monad 类型类实例。语句可以有以下形式:
a <- x
哪个脱糖x >>= \a -> ...
x
x >>= \_ -> ...
如果这是最后一个语句,则它对或只是 x 脱糖。- 一个 let 绑定
let a = x
。请注意缺少in
关键字。示例
maybeSum desugars to
::
purescript - 如何移除一个 Aff(类似于 Eff 的 unsafePerformEff)?
我正在尝试获取通过 Node.FS.Aff.readTextFile 从文件中读取的一些文件内容,因此使用异步效果。
但是我的问题更笼统。
所以我想得到Left
orRight
值。如果它Eff
不是Aff
我可以使用的地方
谢谢
purescript - 在纯脚本中;-> 和 => 有什么区别?
在学习 PureScript 教程时,代码示例开始使用“=>”,但没有引入它。结果我不明白什么时候使用'=>'而不是'->'。
例如,这使用'=>':
因为这使用'->':
purescript - 如何在 PureScript 中读取文件 (readFile)
在测试时,我想从磁盘读取和写入文件(JSON 输入,JSON 输出)。我如何在 PureScript 中做到这一点?在 Haskell 我有类似的东西
到目前为止,我所有的尝试都失败了,包括尝试使用readFile
from import Node.FS.Sync
。
顺便说一句,如果在我的 JSON 文件中有任何其他(更好的)读取方式,请告诉我。(我不是 JavaScript 专家,但我想将一些 - 严格 - Haskell 代码移植到 JS 以便它可以在其他地方使用。)