2011-11-10 9 views
7

、我々はremove機能を使用することができます。OCamlのリストから要素を削除する標準的な方法は何ですか? Common Lispでは

OCamlにこのようなメソッドがないようですか? OCamlの中

+0

正確にどのように削除を行わなければなりませんか?リストを([http://caml.inria.fr/pub/docs/manual-ocaml/libref/List.html)] [フィルタリング]したいだけですか? ([ 'remove'](http://www.lispworks.com/documentation/HyperSpec/Body/f%5Frm%5Frm.htm)、少なくともCommon Lispの意味で非常に、非常に怖い獣...スタートです/ end範囲、カウント、キー、述語、oh my!) –

答えて

14

リストは不変です。だからあなたはそれらから物を取り除くことはできません。あなたは通常、あなたが望まないものを持たない別のリストを作成します。そのためには、List.filterを使用します。

絶対に変更可能なリストが必要な場合は、可能です。バッテリーには、Dllistと呼ばれるものがあります。 (ただし、Lispリストとは異なり、二重にリンクされたリストです)。

私の意見では、OCamlの素晴らしい点の1つは、純粋な機能サブセットが本当に効果的だということです。自分のプロジェクトに変更可能なリストを使う必要は一度もありません。

+0

私は参照してください。私はList.filterを使うべきです。 –

+0

こんにちはJeffrey、私は1つのデータ構造にいくつかの要素を格納したいのですが、それを行うための再帰関数を直接書くのは適切ではありませんか? – computereasy

+0

短い答え:それは常に適切です! :-)長い答え:正当な理由があれば、可変構造を使うことができます。あなたはより具体的な、別の質問として、より良い答えを得るためにこれを求めなければなりません。 –

関連する問題