【问题标题】:Convert option to list in sml [closed]将选项转换为 sml 中的列表 [关闭]
【发布时间】:2013-01-11 17:54:14
【问题描述】:

我有以下接受字符串列表列表和字符串的函数。它返回一个字符串列表。

 fun  get_substitutions1 ((x::xs)::ys, s) = 
 all_except_option((x::xs),s) @ get_substitutions1(ys,s) ;

我面临的问题是 all_except_option 返回 OPTION,因此当我尝试连接它时出现错误。我的问题是如何从 OPTION 中提取 LIST。

【问题讨论】:

    标签: list pattern-matching sml


    【解决方案1】:

    您基本上有两种选择。如果您知道它(肯定)总是返回SOME lst,那么您可以使用valOf 函数,它接受'a option 并返回'a

    - val a = SOME [1,2,3,3];
    val a = SOME [1,2,3,3] : int list option
    - val b = valOf a;
    val b = [1,2,3,3] : int list
    

    你的另一个选择是使用模式匹配来解压它

    case x of
      SOME lst => lst
    | NONE => ...
    

    【讨论】:

    • 那我如何使用 valOf for NONE 来结合 NONE 和字符串列表选项
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2021-03-26
    • 2011-02-03
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多