问题标签 [dhall]
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 - 如何在 Dhall 中定义和使用类似 Haskell 的 sum 类型
如何在 Dhall 编程语言中定义类似于 Haskell 的 sum 类型的 sum 类型?
例如,如果在 Haskell 中我会定义
我的目的是在 Dhall 中定义一个记录,其中一个属性具有一组有限的可能值:
haskell - 如何在 dhall 中使用多态类型构造函数
我正在尝试在 Dhall 中定义多态类型。在 Haskell 中,它看起来像:
为此,我在 Dhall (mkMyType.dhall) 中定义了这个函数:
我还定义了一个函数,它返回该类型的构造函数,给定一个 (./mkMyTypeConstructor.dhall):
现在,为了使用它,我需要执行以下操作:
这是正确的方法吗?
最后,在我的用例中最理想的类型是对诸如“foo”之类的文本和自定义类型(例如 { somethingElse: {} })进行类型检查。这可能吗?
dhall - 如何避免 dhall-format 将自然语言文本转换为代码点?
我想在 dhall 文件中将日语句子写为文本。
但是 format 子命令将它们转换为代码点。
格式化的句子没有意义。
如何保持日文文本原样?
或者,我应该总是对日语句子使用原始文本功能吗?
dhall - `dhall format` 和 `dhall lint` 之间的区别
第一次玩dhall
我看到它支持这两个选项:
两者有什么区别?从在我的示例项目上运行它们来看,它们似乎是同一件事。我本以为 linter 在某些方面比格式化更进一步(例如推荐“惯用的”dhall),但找不到任何信息。
dhall - 在 dhall 中拆分字符串
我在玩 dhall,想知道如何实现形式的字符串拆分功能
λ(text: Text) -> λ(delimiter: Text) -> List Text
但是,似乎 dhall没有代表单个字符的概念/类型。而Prelude中没有这个功能。
对 Text 值唯一能做的就是连接它们
所以……有可能吗?
haskell - 我如何在 dhall 中表示一个元组?
我想在 dhall 中表示 IPv4 地址,这样我就可以管理我的主机配置。
默认情况下,这被保存为文本;但这显然不能令人满意,因为它允许任何旧文本通过。我想将这些值保留为 8 位值的 4 元组。
我不认为 Dhall 可以本机允许这一点 - 我能看到的最接近的是 { a : Natural, b : Natural } 等的记录,但这在语法上很笨拙,并且仍然允许 0-255 之外的八位字节值。
假设我不能直接在 Dhall 中实现这一点,也许我可以在 Haskell 中定义一个类型,它可以自动从 Dhall 读取 4 长度的 Naturals 列表的值,
我的问题是:
- 我是否认为直接在 Dhall 中执行此操作是不可能的或异常困难的?
- 要在 Haskell 中定义这种类型,我需要定义一个
Interpret
;的实例吗?如果是这样,我如何定义一个实例,该实例将在 4 部分整数列表中读取,同时为错误构造(错误长度的列表、非整数列表或非列表)或输出提供有用的错误消息-of-bounds 值(不介于 0 和 255 之间的整数)。
这是我尝试过的:
但我正在努力寻找一种方法来表达可以读入的 dhall 值:
(我更愿意将 IP 表示为 [1,2,3,4];但遵循错误消息和文档pair
似乎表明编号记录是要走的路)。
有没有办法实现我所追求的?
dhall - 如何处理 dhall 中的枚举?
我需要键入并生成一个包含字符串枚举值的配置。我设法定义了以下几行。最后,我需要将联合转换为字符串值。
这里包含联合/枚举的记录位于顶部,因此我可以很容易地访问它,但在最终配置中,ParameterObject si 嵌套得很深。
有没有办法
- “遍历”任意记录结构并在任何适用的地方应用 locationToText ?
- 或者用打印机提供 dhall-to-json/dhall-to-yaml 以获得这样的价值?
- 还是更好的方法来定义我的枚举以更轻松地实现我的目标?
dhall - Dhall协会名单
我有一个联合类型,我希望一个字段成为关联列表。
在这里,我希望params
成为一个关联列表,所以当我输入检查记录值时它会通过,例如
那么,应该是什么类型XXX
呢Blah
?
dhall - 如何将关联列表作为异构列表处理?
我正在尝试使用 dhall 键入openapi 规范。按照开放 api 对象具有数组的安全要求对象的描述,我编写以下代码:
使用此代码,我
{"Foo":[],"AuthorizationHeader":[]}
在尝试拥有
[{"Foo":[]},{"AuthorizationHeader":[]}]
. 我怎样才能实现我的目标?
haskell - 如何在 Dhall 中表示“Data.Map Text Text”?
如果我在 Haskell 中有这样的类型:
我如何代表MyType
Dhall 的值?
我想要做的是MyType
在 Dhall 中写入值,然后从 Haskell 中读取它并将其解组为MyType
,如下所示:
我来自Data.Aeson
YAML,您可以在其中表示这样的地图:
(您可以使用MyType
Aeson's 将上述内容解析为类型decodeFileEither
)。