编辑 sml 列表中的元组

Editing tuples in a list of sml

我想制作一个列表,其规格为:(string*int) list 并且可以编辑元组。例如,假设

val gamma = [("a",20),("b",30),("c",40)] :(string*int) list

现在,如何将元组 ("b",30) 中的值 30 更改为 70。

您需要 map 遍历列表并构建一个新元组:

let
  fun change key value (k, v) =
    if k = key
    then (k, value)
    else (k, v)

  val list = [("a",20),("b",30),("c",40)]
in
  List.map (change "b" 70) list
end