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

dhall - 解析路径类型

我试图为该Path类型创建一个实例。https://hackage.haskell.org/package/path

如果我使用泛型。

这不会对目录进行任何规范化。我最初认为这会搭载定义的 FromJSON 实例,这些实例又会调用parseRelDir等,但事实并非如此,当我尝试手动实现它时,我意识到我完全不知所措。这样做的方法是什么?

0 投票
1 回答
189 浏览

dhall - Dhall Repl:如何获取记录类型的字段类型

我正在寻找一种方法来查看记录类型的字段类型,基本上是.Dhall REPL 中的类型级别等价物

假设我已经完成:

我如何在不必实例化 Person 的情况下找到 Person.name 的类型(Text

如果我创建 Person 类型的术语,例如:let betty : Person = { age = 34, name = "Betty" },我可以这样做:type betty.name,但我正在寻找与之等效的类型级别。

dhall-kubernetes实际用例是在具有许多字段的深度嵌套记录中查找字段类型。

谢谢,如果我的 Google-fu 失败并且之前有人问过这个问题,我们深表歉意。

0 投票
1 回答
136 浏览

dhall - 为什么 Dhall 不允许从 if 表达式返回类型?

Dhall 具有返回类型的函数:

它有if表达式:

但是这两个功能不能一起使用:

为什么?

起初我认为这是一个避免依赖类型的技巧,但似乎 Dhall 在使用联合时确实允许类型真正依赖于值。以下编译良好:

更新

dhall标准现在支持这样的 if 表达式,dhall-haskell也是如此,感谢@gabriel-gonzales

0 投票
1 回答
57 浏览

directed-acyclic-graphs - How can I encode a rule tree of multiple depths in Dhall?

I'm trying to move some error prone YAML into Dhall to make some system configuration simpler. I have a tree that looks like:

I'm trying to encode this in Dhall and I can't seem to provide the compiler the right information. My latest try looks like:

But I get Error: Not a function. Any pointers would be appreciated.

I also tried w/ the Graph module, but I can't seem to convert that to YAML directly.

0 投票
1 回答
88 浏览

kubernetes - 我如何从 dhall kubernetes 导出 IntOrString

我想导入:IntOrString从 dhall kubernetes, https://github.com/dhall-lang/dhall-kubernetes/blob/master/1.19/types/io.k8s.apimachinery.pkg.util.intstr.IntOrString.dhall; 但我不知道如何导入它?

我有这个代码:

0 投票
1 回答
151 浏览

build - packages.dhall 和 spago.dhall 文件有什么区别?

spago文档状态:

packages.dhall:此文件旨在包含您的项目可用的全部包(即,您可能要导入的任何包)。

实际上,它以官方包集为基础,然后您可以添加任何可能不在包集中的包,或覆盖现有的包。

spago.dhall: 这是你的项目配置。它包括上述包集、依赖项列表、将用于构建的源路径以及 spago 将使用的任何其他项目范围的设置。(我的重点)

为什么这两个文件都有 的概念/概念dependencies?示例:packages.dhall来自spago.dhall电子书。

spago.dhall可以在项目.spago文件夹中找到依赖项。但我无法找到来自packages.dhall. 其他的都很常见aff。不同的视角

[...] 您选择的是“快照”,它是所有可用包的某些版本的集合,这些包保证可以编译和协同工作。

快照在您的packages.dhall文件中定义,然后您指定要在spago.dhall. 每个包的版本来自快照。

听起来,就像spago.dhall是来自 .The 包的摘录packages.dhall。关于版本的注释有点令人困惑,因为两个文件中都没有版本说明符。

那么,为什么是两个文件?来自 npm 生态系统的人的心智模型是什么package.json(也可能存在)?

0 投票
0 回答
51 浏览

dhall - Dhall 环境变量值作为联合替代方案

我刚从 Dhall 开始,我被这个问题难住了。我正在尝试生成 YAML 文件,其中参数由环境变量设置,在这种情况下DHALL_TARGET。基本上我正在尝试这样做:

以上显然不起作用,因为Env.env:DHALL_TARGET语法无效。将环境变量解释为联合替代方案的正确方法是什么?

我现在这样运行它:

0 投票
1 回答
42 浏览

kubernetes - 缺少记录字段:IngressServiceBackend

我在尝试使用 Dhall for Kubernetes 时收到一条奇怪的错误消息,我不明白。这是我的配置:

这是错误消息:

IngressServiceBackend所以在我看来它没有找到k8s?但是,k8s定义为https://raw.githubusercontent.com/dhall-lang/dhall-kubernetes/master/1.19/package.dhall并且当我手动浏览该 URL 时,我可以看到它在那里。

有任何想法吗?

0 投票
1 回答
139 浏览

dhall - 如何在 dhall 中键入异构列表?

我正在使用 Dhall 为 github 操作生成 Yaml 文件。在 GH Action 中,您可以指定一个矩阵来生成多个案例(例如 Scala 版本和项目名称的组合)。但您也可以指定要排除的组合。

例如:

另一个有效的例子:

最后一个:

(参见:https ://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example- exclude-configurations-from-a-matrix )

特别是,matrix我们有多个领域是List Text,但我们也有exclude我认为是List的领域Record

如果我只是从头开始编写,我可以在 Dhall 中编写此代码,而不定义类型(并且它似乎Record使用我拥有的特定键生成 a。

但是,如果我想构建一个带有类型的库,或者更具体地说是扩展这个库,我不知道如何编写正确的类型。通常,请参见以下定义:

https://github.com/regadas/github-actions-dhall/blob/master/types/Strategy.dhall

matrix被定义为 a List { mapKey : Text, mapValue : List Text },但exclude不是 aList Text所以它不起作用。而且我不知道如何将此定义更改为 accept exclude

请注意,在示例中它是osand node,但它可以是任意键和任意数量的键。

那么知道如何定义该类型吗?

编辑:添加更多示例

0 投票
1 回答
113 浏览

dhall - Dhall - 表达式与注释不匹配,键入预期文本

我正在使用 Dhall 1.39.0 并收到此错误:

这是从 cat show-and-tell.dhall | ~/external-programs/bin/dhall --explain text.

请注意,我可以将相关的 dhall 文件加载到 dhall-golang 库中并使其正确呈现。所以我有点困惑。

一个有点做作的示例文件在这里: