问题标签 [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.

0 投票
1 回答
127 浏览

json - Dhall Lang 列表类型无效

我真的很想使用 Dhall lang 来解决我在使用 Github Terraform Provider 时遇到的问题。

见:https ://github.com/etaty/example-dhall-terraform-github

但是,我以前从未使用过 Dhall,并且实际上只有一个用例可以使用它。

我想调试我在这个 github repo 中遇到的错误以创建 github.tf 文件。

我得到的错误如下:

我在下面包含了第 63 行以及引用了此错误的位置。我上网对此做了很多研究,但是我没有取得任何成功。

任何帮助将不胜感激!

0 投票
1 回答
115 浏览

haskell - 在dhall(Haskell)中编码`Map([Text],[Text])Text`

Map ([Text], [Text]) Text在 dhall中编码 Haskell 类型的最佳方法是什么?

试图。看来我们不能toMap用来这样做:

因为我们需要地图的域是 type ([Text], [Text])

0 投票
1 回答
85 浏览

dhall - 如何制作包含数据的递归 Dhall 和类型

这是我的示例代码。我一直无法弄清楚如何使我的Statesum-type 递归,同时仍然允许它在其他地方像 sum-type 一样使用。我的StateMachine类型也是如此。

是否有一种合理的方法可以做到这一点,不会增加代码大小并使最终用户导入和使用的类型符合人体工程学?如果从示例中看不出来,我正在尝试对状态机进行模式化。

我尝试了以下方法,但我收到“不是记录或联合”错误State.Task

0 投票
1 回答
157 浏览

dhall - 如何创建具有任意键但键入值的 dhall 模式?

在 dhall 中,如何为以下 yaml 创建模式?

如您所见,它具有任意键(“local”、“stage”等),但值的类型相同。我相信这是一个相当常见的用例,但我没有看到教程中讨论过它。

0 投票
1 回答
137 浏览

dhall - dhall-to-yaml 函数文本输出以双引号输出

我有以下函数,当通过 dhall-to-yaml 处理时,它的输出用双引号括起来,但注入记录中的静态字符串没有用引号括起来,我怎样才能控制用双引号括起来的东西和不括起来的东西?

输出

期望的输出:

0 投票
1 回答
126 浏览

haskell - 如何将值打印/编码到 Dhall 中?

在上面的例子中,我怎样才能把 an 编码Example成一个 dhall 值,所以本质上是一个 type 的函数Example -> String?似乎在黑线鳕中找不到任何关于打印/编码的参考。

0 投票
1 回答
299 浏览

json - 如何在dhall中将结构转换为json?

如何将任意结构转换为 json?

我知道有toMap内置函数,但它需要一个同质的记录。

我真正想做的是在 dhall 中编写 OpenAPI 规范。它的大部分部分都很简单而且很好,但是描述传入数据形状的 json 模式是递归的,这在 Dhall 中很难。我想要的会在 Haskell 中表达如下

因为在 Dhall 看起来很难,所以我决定走这条路:

但在这条路上我也被困住了。我愿意为了不打补丁而牺牲一些类型的刚性dhall-json

0 投票
1 回答
71 浏览

dhall - 在 dhall 中定义复杂类型的列表

我定义了几种类型,其中两种被组织成列表(字段和选项)。定义函数以帮助定义条目(addfield 和 addoption)。我能够定义字段并按预期工作;但是,对于选项,当列表包含多个元素时会出现错误。

这是完整的 dhall 文件:

这是错误输出:

如果我删除第二个选项(第 59-64 行),它会起作用吗?

我究竟做错了什么?如何OptionOptionList.

0 投票
1 回答
81 浏览

functional-programming - `bind`/`flatMap`/`>>=` over Optional in Dhall

我需要bind/ flatMap/>>=OptionalDhall 上。

我找不到它的实现并想出了我自己的。

然后我按如下方式使用

中真的没有定义这样的功能Prelude吗?我想我可能错过了。

此外:

  1. 有没有更惯用的方式来定义它?

  2. 是否有可能利用类型推断并缩短调用时间?就像是

我试图不提供类型参数,但似乎不可能(从我对语言的有限了解)。

0 投票
2 回答
173 浏览

recursion - Dhall中的整数除法

我想计算两个Naturals 的商。我需要满足的要求是我有一些配置项必须动态定义为另一个的共享(即一个容器具有X内存,该容器中进程的两个配置键定义为X / YX / Z)。

我的第一个想法是使用递归,但这种方法不起作用:

特别是,quotient当我尝试调用它时,Dhall 抱怨说尚未定义。鉴于 Dhall 的全部功能范式(以及我对它的不熟悉),这似乎是合理的。我认为可能有某种方法可以做到这一点,但不幸的是我无法做到。

我使用Natural/fold该方法进行了另一次尝试,但我不确定这是否有意义。

这通过了以下所有断言。

0在我的情况下,除以时返回0很好。

有没有更惯用的方法来实现这一目标?我在里面找了一个现成的整数除法函数Prelude但是没找到。