2016-04-09 49 views
0

我想创建一个具有规范的列表:(string * int)列表,并且可以编辑元组。例如,假设在sml列表中编辑元组

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

现在,我怎么能更改元组的值30("b",30)到,比方说,70

回答

2

您需要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 
+0

谢谢!这正是需要的。 –

+0

我想创建一个使用列表的数据结构的映射类型:(string * int)列表,其中第一个元素是键,第二个元素是value。最初,当我创建这张地图时,我只想给没有价值的钥匙。如何在这种情况下传递null值?例如,初始化时我需要这样的东西: val gamma = [(“a”,_),(“b”,_),(“c”,_)]:(string * int)list。 –

+0

我试过放“_”和“无”,但他们没有工作。 –