文字列リストリストと文字列を受け入れる次の関数があります。文字列リストを返します。
fun get_substitutions1 ((x::xs)::ys, s) =
all_except_option((x::xs),s) @ get_substitutions1(ys,s) ;
私が直面している問題は、 all_except_option が OPTION を返すため、連結しようとするとエラーが発生することです。私の質問は、OPTION から LIST を抽出する方法です。
文字列リストリストと文字列を受け入れる次の関数があります。文字列リストを返します。
fun get_substitutions1 ((x::xs)::ys, s) =
all_except_option((x::xs),s) @ get_substitutions1(ys,s) ;
私が直面している問題は、 all_except_option が OPTION を返すため、連結しようとするとエラーが発生することです。私の質問は、OPTION から LIST を抽出する方法です。
基本的に 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 => ...