Dhall-在记录字段上映射

问题描述 投票:0回答:1

我有类型

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

但是看起来确实很麻烦。有没有更简单,更惯用的方式做到这一点?

functor dhall
1个回答
0
投票

您可以使用/将更新的属性合并到原始属性中。

(\p : Resource InstanceTemplateProperties) ->
  p / {properties = foo p.properties)
© www.soinside.com 2019 - 2024. All rights reserved.