有没有办法,可能使用ppx扩展或类似的方法,将功能更新语法{ record with key = value }
与嵌套记录一起使用?
例如,在下面的示例程序中,我只在功能上更新最外面的记录,当我真的想要定位"内部"之一。
type outer = {
a : float;
b : inner
}
and inner = {
c : float;
}
let item = { a = 0.4; b = { c = 0.7 } }
let () = ignore { item with b = { c = 0.8 }
如果inner
有多个字段,则会变得不那么方便。
我希望能够编写如下内容(草编语法):
let () = ignore { item with b.c = 0.8 }
答案 0 :(得分:1)
你可以直接用OCaml写这个:
{ item with b = { item.b with c = 0.8 } }
我假设您仅仅为了示例而使用ignore
;忽略功能记录更新的结果是没有意义的。