Dhall - 记录字段上的地图
Dhall - map on record field
我有一个类型
let Resource = \(a : Type) ->
{ name : Text
, type : Text
, properties : a
}
和函数 foo : InstanceTemplateProperties -> Properties
.
我需要创建一个函数 Resource InstanceTemplateProperties -> Resource Properties
。
我可以写成
\(p : Resource InstanceTemplateProperties) ->
{ name = p.name
, type = p.type
, properties = foo p.properties
} : Resource Properties
不过看起来确实很麻烦。有没有更简单、更惯用的方法来做到这一点?
您可以使用 //
将更新后的属性合并到原始属性中。
(\p : Resource InstanceTemplateProperties) ->
p // {properties = foo p.properties)
我有一个类型
let Resource = \(a : Type) ->
{ name : Text
, type : Text
, properties : a
}
和函数 foo : InstanceTemplateProperties -> Properties
.
我需要创建一个函数 Resource InstanceTemplateProperties -> Resource Properties
。
我可以写成
\(p : Resource InstanceTemplateProperties) ->
{ name = p.name
, type = p.type
, properties = foo p.properties
} : Resource Properties
不过看起来确实很麻烦。有没有更简单、更惯用的方法来做到这一点?
您可以使用 //
将更新后的属性合并到原始属性中。
(\p : Resource InstanceTemplateProperties) ->
p // {properties = foo p.properties)