【问题标题】:Editing tuples in a list of sml编辑 sml 列表中的元组
【发布时间】:2016-04-09 18:52:33
【问题描述】:

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

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

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

【问题讨论】:

    标签: list sml smlnj


    【解决方案1】:

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

    【讨论】:

    • 谢谢!这正是我们所需要的。
    • 我想使用具有规范的列表创建一种映射类型的数据结构:(string * int) 列表,其中第一个元素是键,第二个元素是值。最初,当我创建此地图时,我只想提供没有价值的键。在这种情况下如何传递空值?例如,初始化时我需要这样的东西: val gamma = [("a" , _ ),("b" , _ ),("c" , _ )] :(string*int) list.
    • 我尝试输入“_”和“NONE”,但没有成功。
    • @AnkitShubham 这听起来像是一个完全独立的问题。我建议你用 StackOverflow 系统问一个新的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    相关资源
    最近更新 更多