Functional programming 如何从列表中访问类型中的值

Functional programming 如何从列表中访问类型中的值,functional-programming,ocaml,Functional Programming,Ocaml,这是我项目的结构 type A{ t1; t2; } and B = var of A and C = B list type D = C list 现在我有一个只有D作为参数的函数。每次调用此函数时,我都需要为t2指定一个唯一的值 我想我不能直接给t2赋值,而是需要返回一个新类型,新值为t2。我想这就是函数式语言的工作原理 我的问题是我不知道如何使用这个函数访问这个值 我还在学习语法,如果有人能给我举个例子,那就太好了你的问题一点也不清楚 如果您希望a成为一个可以更改其中一个字段的记录,那

这是我项目的结构

type A{
t1;
t2;
}

and B = var of A
and C = B list
type D = C list
现在我有一个只有D作为参数的函数。每次调用此函数时,我都需要为t2指定一个唯一的值

我想我不能直接给t2赋值,而是需要返回一个新类型,新值为t2。我想这就是函数式语言的工作原理

我的问题是我不知道如何使用这个函数访问这个值


我还在学习语法,如果有人能给我举个例子,那就太好了

你的问题一点也不清楚

如果您希望a成为一个可以更改其中一个字段的记录,那么可以使用关键字
mutable

如果您有
type a={t1:int;mutable t2:int}
,那么如果
x
a
类型的值,您可以使用语法
x.t2 List.iter(函数(Var a)->a.t2 a.t2它离有效的OCaml语法太远了。几乎不可能猜出您想要做什么。
type a = { t1 : int ; mutable t2 : int }
type b = Var of a
type c = b list
type d = c list

let func d =
  List.iter (fun c -> List.iter (function (Var a) -> a.t2 <- a.t2 + 1) c) d
let func = List.iter (List.iter (function (Var a) -> a.t2 <- a.t2 + 1))