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

基本的に 2 つのオプションがあります。(確かに)常に を返すことがわかっている場合は、を取り、値を返す関数を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 に答える