问题标签 [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 回答
104 浏览

functor - Dhall - 记录字段上的地图

我有一个类型

和一个函数foo : InstanceTemplateProperties -> Properties

我需要创建一个函数Resource InstanceTemplateProperties -> Resource Properties

我可以把它写成

但是看起来真的很麻烦。有没有更简单、更惯用的方法来做到这一点?

0 投票
1 回答
85 浏览

dhall - 如何使用 Dhall 在字段子集上编码联合?

我正在尝试使用 Dhall 生成 AWS Cloudformation,而我尝试编码的第一件事是AWS::ApiGatewayV2::Api。遵循 json 规范:

该规范有多个字段,但其中两个形成一个联合:BodyS3LocationBody. 意味着其中任何一个都应该存在。我知道对动态记录的支持,但显然只适用于具有单个记录的对象。编码这种行为的推荐方法是什么?

0 投票
1 回答
164 浏览

functional-programming - 如何在 Dhall 中编写处理联合类型的函数

我正试图了解编程在 Dhall 中是如何工作的。考虑以下联合类型:

我想编写一个extractId返回Optional Text包含 Id (或None)的函数,但我找不到在 Dhall 中进行解构的方法。

0 投票
1 回答
296 浏览

json - 如何将动态命名的记录与 Dhall 中的静态记录合并?

我正在 Dhall 中创建 AWS Step Function 定义。但是,我不知道如何创建他们用于Choice状态的通用结构,例如下面的示例:

使用andNot非常简单。如果我定义一个基本比较:mapKeymapValue

和类型:

Text并添加一个辅助函数来呈现类型mapKey

然后我可以在函数中使用它们来中途生成记录:

如果我使用以下方法运行它:

使用dhall-to-json,她将输出第一部分:

...但我一直在努力将其与"Next": "Sup". 我已经使用了所有的记录合并,如/\,//等,它不断给我各种类型的错误,我还没有真正理解。

0 投票
1 回答
176 浏览

dhall - Dhall 记录到文本

我正在寻找 Java 的 Dhall 等价物,toString因此我可以在另一条记录中嵌入一些原始 JSON,但我希望确保生成的 JSON 结构有效。

我有一个记录,例如{ name : Text, age : Natural }并希望将值转换为文本,例如:

这将产生:

在 Dhall 这可能吗?

0 投票
1 回答
1118 浏览

graph - 可以在 Dhall 中对有效图的类型进行编码吗?

我想在 Dhall 中表示一个 wiki(一组包含有向图的文档)。这些文档将呈现为 HTML,我想防止生成断开的链接。正如我所看到的,这可以通过使无效图(链接到不存在的节点的图)无法通过类型系统表示或通过编写一个函数来返回任何可能的图中的错误列表来实现(例如“在可能的图中X,节点 A 包含指向不存在的节点 B 的链接")。

一个简单的邻接表表示可能看起来像这样:

正如这个例子所表明的那样,这种类型允许不对应于有效图的值(没有 id 为“b”的节点,但 id 为“a”的节点规定了一个 id 为“b”的邻居)。此外,不可能通过折叠每个节点的邻居来生成这些问题的列表,因为 Dhall 在设计上不支持字符串比较。

是否有任何表示可以允许计算断开的链接列表或通过类型系统排除断开的链接?

更新:我刚刚发现 Dhall 中的 Naturals 具有可比性。所以我想可以编写一个函数来识别任何无效的边缘(“断开的链接”),如果标识符是自然的,则重复使用标识符。

但是,是否可以定义 Graph 类型的原始问题仍然存在。

0 投票
1 回答
534 浏览

kubernetes - 是否可以在 json 或 yaml 中获取所有可选字段显式设置为 null 的 kubernetes 对象?

我正在尝试将 helm/kubernetes 代码库迁移到dhall-kubernetes。Dhall 是键入的,所以如果没有设置,我需要提供完整的记录,其中可选字段设置为 null。所以我正在寻找类似的东西kubectl get objname id -o yaml,但我需要它来输出所有可选字段,如fieldName: null. 有没有办法做到这一点?我不知道该怎么做,所以作为一个计划 BI 写了dhall-default我尝试以不同的方式处理它。

0 投票
1 回答
916 浏览

bazel - 如何在不使用相对路径的情况下从另一个规则访问 bazel 规则的输出?

我正在尝试使用 Bazel 编译基于 dhall-kubernetes 的 dhall 程序以生成 Kubernetes YAML 文件。

使用简单的 bazel 宏在没有 dhall-kubernetes 的情况下进行基本dhall 编译可以正常工作。

我已经做了一个使用 dhall 的依赖解析来下载 dhall-kubernetes 的示例 - 请参见此处。这也有效,但速度很慢(我认为是因为 dhall 分别下载每个远程文件),并且对 bazel 规则执行引入了网络依赖性,我希望避免这种情况。

我首选的方法是使用 Bazel 下载 dhall-kubernetes 的存档发行版,然后让规则在本地访问它(请参阅此处)。我的解决方案需要 Prelude.dhall 和 package.dhall 中的相对路径,以便示例/k8s 包引用 dhall-kubernetes。虽然它有效,但我担心这会破坏 Bazel 沙箱,因为它需要 Bazel 内部使用的文件夹结构的特殊知识。有没有更好的办法?

Prelude.dhall:

工作空间:

BUILD.dhall-kubernetes:

示例/k8s/构建:

0 投票
1 回答
121 浏览

dhall - 是否可以从 _within_ 一个 dhall 表达式创建 YAML?

我想使用 dhall-kubernetes 为服务生成一个 ConfigMap。该服务是使用 YAML 文件配置的。我可以使用 dhall 分两次创建配置:

服务器.dhall:

configmap.dhall:

包.dhall

是否可以通过从 dhall 中生成 YAML 来仅使用一次 dhall-to-yaml 调用?像这样的东西:

我从 Prelude 中找到了 JSON.renderYAML 函数,但这似乎并不是所需要的。

0 投票
0 回答
23 浏览

dhall - 有没有办法在 Dhall 中显示没有科学记数法的 Double?

我使用 dhall 作为定义某些结构的一种方式,这些结构可以接受小数和整数作为输入。我为此使用了 Double 类型,因为它似乎很适合涵盖这两种情况,但是在将它们呈现为使用科学记数法转换为文本的文本时遇到了一些问题:

有没有办法完全关闭科学记数法并在转换为文本时表示双精度数是小数?

在这种情况下是否有更合适的类型可以使用?