2017-06-20 6 views
1

タプルのリストを検索してタプルの最初の要素の文字列を検索する関数をSMLに書き込もうとしています。標準ML:タプルのリストを検索する

何も返されない基本ケースに使用できるものはありますか?私が試したすべては、私はエラーが発生します。私はここでも他の提案にも感謝しています。

あなたは基本ケースのためにNoneを返しする Option構造を使用することができます

答えて

3

、 私は少し最初のベースケースを入れて、コードを再フォーマットしてきた、

としてだけでなく、試合のためのいくつかのyを返す、とのためにNONEベースケース。 そこからcase文またはパターンマッチングを使用して結果を取得できます。

type command = string; 

fun getFromBlist(name, []) = NONE 
    | getFromBlist (name : command, (x,y)::tail : (command*command) list) = 
    if x = name 
     then SOME y 
     else getFromBlist(name, tail); 

また、あなたが望むものに応じて、基本ケースのために、あなたが「」空の文字列を返し、あなたがもともといたとしてYを返すことができます。それは、空文字列が有効なコマンドであるかどうかと、それと基本ケースを区別する必要があるかどうかによって決まります。

しかし、その後 は、同じ型を返す文字列、またはオプションそれでなければならない基本ケース、およびの結果を要約する