问题标签 [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 - PureScript 和类型类
我在使用 PureScript 类型类时遇到问题。我必须先说,我也不是 Haskell 专家,所以如果这些是明显的错误,我深表歉意。
我尝试了几种不同的方法,并且每种方法都碰壁了。我基本上是在尝试为show
图中的边定义一个函数。一种方法如下所示:
这给了我错误:
我猜这与它e
推断show
. 我尝试在此处添加类型注释,但出现语法错误:
我尝试的第二件事是:
这给了我:
所以我然后尝试明确列出底层类型:
这给了我:
我不知道“类型类实例头”是什么,所以我无处可去。
三个尝试都失败了。可能出于完全不同的原因。作为 PureScript 的新手,我只是不知道问题出在哪里。我一直在尝试查看Data.*
各种类型的示例并通过示例阅读 PureScript。我一直无法弄清楚这一点。
感谢您的任何帮助。
haskell - Haskell 和 PureScript 有什么区别?
PureScript 看起来与 Haskell 非常相似。在我看来,PureScript 程序的大部分,主要是纯部分,也应该可以由 Haskell 编译器编译。那正确吗?
这导致了一个相关的问题:是否可以在 Haskell 服务器后端和 PureScript 前端之间共享代码,例如数据结构、表单验证?
purescript - 重复行错误,如何统一通用行类型
我已经扭曲了我的大脑,但我不明白如何在这里统一类型。PureScript 的早期版本一切正常。但是在 0.6 中我被卡住了。
--
解析的详细信息
更多类型信息
printing - purescript 中的换行符、制表符如何表示?
例如。我如何打印出这样的东西:
这只是打印出来Doe\tJohn\t555-555-5555
。
javascript - 构造函数的 Purescript FFI 类型定义
我正在尝试使用 PureScripts 外部函数接口包装钛 API 的一部分,但我无法确定函数的类型定义应该是什么。
purescript - 从不一致的 JavaScript 对象创建 PureScript 记录
假设我的 PureScript 代码中有以下类型的用户记录:
CommonJS 模块派生自 PureScript 代码。导出的用户相关函数将从外部 JavaScript 代码调用。
在 JavaScript 代码中,“用户”可以表示为:
email
可能是null
:
email
可以省略:
isActive
可以省略,在这种情况下假定true
:
id
不幸的是,有时是一个数字字符串:
上面的五种 JavaScript 表示是等价的,并且应该产生等价的 PureScript 记录。
如何编写一个接受 JavaScript 对象并返回用户记录的函数?它将使用 null/省略的可选字段的默认值,将字符串强制id
转换为数字,如果缺少必填字段或值的类型错误,则抛出异常。
我可以看到的两种方法是在 PureScript 模块中使用 FFI 或在外部 JavaScript 代码中定义转换函数。后者似乎毛茸茸的:
我不确定 FFI 版本将如何工作。我还没有处理过效果。
很抱歉,这个问题不是很清楚。我还没有足够的了解来确切地知道我想知道什么。
functional-programming - purescript-lens 合成类型错误
我正在尝试使用 purescript-lens 来更新嵌套记录的属性。但是,当我合成镜头以到达该属性时,我收到以下类型错误:
我对镜头和纯脚本比较陌生,所以它可能是简单而明显的。
产生此错误的相关代码如下(是的,它基于 purescript-thermite-todomvc):
我要更新的属性是 st.item.description ,上面的错误是指以“updateState (NewItem ...”开头的行。奇怪的是,下一行也报告了同样的错误。
关于如何解决类型错误的任何想法?
谢谢
haskell - 未找到 System.IO.UTF8(安装 PureScript)
我正在尝试在 Ubuntu 14.04 上安装 PureScript。我有最新版本的 Haskell-Platform 并且已经运行cabal update
. 在cabal install purescript
我收到一条错误消息,提示System.IO.UTF8
找不到该模块。谷歌搜索显示,这是安装该软件包时暴露模块的一部分,utf8-string
并且应该是其中之一。
但是,当我安装它时,没有这样的包可用:
您可以看到仅编译了 5 个指定的建议库。
PureScript 源代码System.IO.UTF8
肯定使用.
但System.IO.UTF8
看起来像一个相当古老的包,很长一段时间(2 年以上)没有发生变化,所以这不太可能是最近版本的重大变化。启动时,PureScript 是非常新的,因此如果可用的话,肯定会基于更新版本的 utf8-string。
所以问题是:为什么 PureScript 不能自行安装此依赖项......以及为什么cabal
安装失败并不能按照它的建议utf8-string
公开模块。System.IO.UTF8
records - PureScript 中的记录
我不太明白为什么会这样:
虽然这说Cannot unify # * with *
。
(注意 Sel 右侧的 '()' 而不是 '{}'。)
我在这里读过https://leanpub.com/purescript/read#leanpub-auto-objects-and-rowsforall r. { firstName :: String, lastName :: String | r }
去糖
forall r. Object (firstName :: String, lastName :: String | r)
我仍然有点困惑,为什么你不能使用记录糖来扩展记录。
functional-programming - 开始使用纯脚本
我刚刚开始通过示例学习 purescript,但我被困在第 2 章的末尾,使用 grunt 项目模板。我按照说明进行操作,但是当我运行 grunt 命令时出现此错误:
我通过深入研究代码发现的是模块 Math 被导入/output/Control.Monad.Eff.Random/index.js
为
如果我删除导入,让 Math 成为本机并index.js
简单地运行 main node index.js
,一切正常。我想知道我是否可以在 purescript 中解决这个问题,或者我做错了什么。