3

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

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

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

4

1 回答 1

11

你基本上有两个选择。如果您知道它(肯定)总是返回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 => ...
于 2013-01-28T14:25:00.940 回答