0

要素のリストがあるとしましょう:

[(a,b); (c,d); (e,f)]

要素(A =(x、y))がリストにあるかどうかを確認する関数は何ですか?

4

2 に答える 2

0

これを自分で書く方法のヒントを次に示します。リストを処理する自然な方法は、最初に最初の要素を調べてから、空のリストになるまでリストの残りを再帰的にチェックすることです。この問題では、アルゴリズムを英語で次のように記述できます。

リストが空の場合、アイテムはリストに含まれていません。そうでない場合、最初のリスト要素がアイテムと等しい場合は含まれています。そうでない場合は、(アイテムはリストの残りの部分にありますか?)

あとは、これを (再帰関数を使って) OCaml コードに変換するだけです。

一般に、問題のより小さな部分またはより単純な部分の観点からやりたいことを説明できれば、再帰コードを書くのは簡単です (ただし、基本ケースが正しいことに注意する必要があります)。リストまたはツリー構造のデータを使用する場合、問題を分解する方法は通常明らかです。

于 2013-04-10T10:38:55.990 に答える