- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以对 Purescript 中的类型构造函数施加某些限制?例如:
newtype Name = Name String
-- where length of String is > 5
最佳答案
正如在另一个答案中提到的,你需要一些更高级的类型系统才能像那样编码它,所以通常实现你想要的方法是为 newtype
提供一个“智能构造函数”然后不导出构造函数本身,这样人们将只能使用您想要的属性构造 newtype 的值:
module Names (runName, name) where
import Prelude
import Data.Maybe (Maybe(..))
import Data.String (length)
newtype Name = Name String
-- No way to pattern match when the constructor is not exported,
-- so need to provide something to extract the value too
runName :: Name -> String
runName (Name s) = s
name :: String -> Maybe Name
name s =
if length s > 5
then Just (Name s)
else Nothing
关于purescript - Purescript 中的新类型是否可能存在约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569910/
来自 F# 世界,我习惯使用 |>将数据通过管道传输到函数中: [1..10] |> List.filter (fun n -> n % 2 = 0) |> List.map (fun n -> n
是否可以对 Purescript 中的类型构造函数施加某些限制?例如: newtype Name = Name String -- where length of String is > 5 最
我刚刚开始学习 Purescript,所以我希望这不是一个愚蠢的问题。 假设我们有一个对象 a = {x:1,y:2} 我们想要将 x 更改为等于 2。据我所知,如果我们使用 ST monad,我们将
我想知道如何在 PureScript 代码中添加注释。 在 Python 中,等价的是: # Here is a comment 或JavaScript // Another comment Pure
当在缩进位置使用三引号时,我肯定也会在输出 js 字符串中缩进: 在嵌套的 let 中比较这两个 let input1 = "T1\nX55.555Y-44.444\nX52.324Y-40.386"
PureScript by Example,在 The Eff Monad -> Handlers and Actions 部分指出“[效果]处理程序通常从集合中减去效果”。但是,这些示例相当不透明,
纯脚本列表中是否有 foreach 方法? foreach 方法获取列表的每一项并返回一个单位。 它是打印列表中每个项目的好方法。 编辑:我正在尝试下面建议的 traverse 方法,但出现错误 im
我首先是关于 Purescript 的。 我要将新字段添加到 Object 并将其作为函数参数发送。 但我找不到一个好的解决方案。 例如。 oldFiled = { title : "title",
我正在使用 Purescript 做第一步并复制 "hello world" app . 测试通过。我故意破坏了测试。 module Test.Main where import Prelude im
我是 Purescript 的新手,所以这可能是一个幼稚的问题。 我想编写一个 Purescript 函数,它从浏览器上的 HTML 输入元素读取输入,并将一些输出写入另一个 HTML 输入元素。 使
我想制作一个非常人性化的开发环境,我正在考虑使用 PureScript 来提供语言部分。我看到开箱即用,Show不适用于作为 Show 实例的事物的记录: log (show {a:5}) “试试 P
有没有办法做类似的事情 first = {x:0} second = {x:1,y:1} both = [first, second] 使得 both推断为 {x::Int | r}或类似的东西? 我
我正在使用 purescript-halogen,当捕获到子组件的消息时,我想滚动到 div 的底部。 但是,在 Halogen 中似乎不存在滚动 Action 控制。 那么,我该如何 Scroll
大家。我想在 Purescript 的记录数组中找到一个元素,但由于我不熟悉 Purescripot,所以无法解决。 我有一个包含银行记录的数组banks。 这是银行记录的类型。 type Bank
大家。我想在 Purescript 的记录数组中找到一个元素,但由于我不熟悉 Purescripot,所以无法解决。 我有一个包含银行记录的数组banks。 这是银行记录的类型。 type Bank
我有一个类型为 Either String (Either String Int) 的对象.我想将其折叠为 Either String Int 类型的对象. PureScript 中是否有为此提供的函
我想使用 Purescript 的 Halogen 编写前端的特定组件。 例如,我想使用卤素创建一个注册表单。它看起来像下面这样: module RegistrationForm where impo
这对我来说似乎是一个奇怪的问题,但我已经通过了 purescript-datetime和 purescript-js-date而我就是找不到获取当前信息的方法 DateTime .是否有一些隐藏的库函
当目标平台是 JavaScript 时,我正在寻找一种控制 Purescript 代码翻译格式的方法。 “spago bundle-app”为 ES5 版本生成 JavaScript 代码。 spag
我正在使用 purescript-halogen 构建类似电子表格的表格(类似于 Handsontable )。如果您双击一个单元格,一个 html 输入元素将呈现为相应表格单元格的子元素(并且不会为
我是一名优秀的程序员,十分优秀!