|
|
1
4
如果我理解你的问题,你可以用两种不同的方法来实现你想要的。 在标记类型上使用可变数据结构,如以下示例所示:
输出:
|
|
|
2
2
首先,你说的“修改”是什么意思?只返回一个新的更改的值是可以的,还是必须改变原始结构?因为在OCaml中,唯一可变的是数组元素、字符串元素、显式标记为可变的记录中的字段(包括
|
|
|
3
1
这是有区别的,因为在函数式语言中,我们通常处理不变的数据结构。我想你想问的是,如何返回一个新的结构,用一个指定的标记替换另一个。撇开迂腐不谈,在函数式语言中这是一件很自然的事情,你很少会考虑到这一点。 让我们完全定义您正在使用的结构。我另外定义了tag——我假设它是一个字符串。
这是一个体面的,简单的解决办法,我认为你的问题。不过,这方面有很多问题;如果值不存在,它不会进行错误检查,并且每次都会复制整个数据结构——这是由于
|