[解決済み] Prolog リストから要素を削除する
2022-02-07 23:47:35
質問
リスト内のある要素の出現回数をすべて削除するために、次のようなファクトを持っています。出力は正しいのですが、要素が空白に置き換えられているだけです。
remover( _, [], []).
remover( R, [R|T], [T2]) :- remover( R, T, T2).
remover( R, [H|T], [H|T2]) :- H \= R, remover( R, T, T2).
removerを呼び出すと、出力は:
remover(3,[1,2,3,4,3],Res)
Res = [1, 2, [4, []]]
私はまた、最初の出現だけを削除するために、以下のファクトを持っていますが、出力は上記と同じです。
remover_primeira( _, [], []).
remover_primeira( R, [R|T], [T2]) :-remover_primeira( R, T, T2),!.
remover_primeira( R, [H|T], [H|T2]) :- H \= R, remover_primeira( R, T, T2).
何が間違っているのでしょうか?
どうすればいいですか?
をラップしてはいけません。
T2
を第2節のシングルトンリストに含めると、そうなるはずです。
remover( _, [], []).
remover( R, [R|T], T2) :- remover( R, T, T2).
remover( R, [H|T], [H|T2]) :- H \= R, remover( R, T, T2).
を削除するだけでよい場合 最初 が発生した場合、その要素を見つけた時点から再帰するべきではありません。
remover( _, [], []).
remover( R, [R|T], T).
remover( R, [H|T], [H|T2]) :- H \= R, remover( R, T, T2).
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Haskellを学ぶ。HaskellでListからアイテムを削除する方法
-
[解決済み】Prologでリストを反転させる
-
[解決済み] TypeError: リストのインデックスは整数でなければならず、floatではない
-
[解決済み] list_for_each_entry と list_for_each_entry_safe について説明する。
-
[解決済み] PrologでListの要素をプリントアウトする
-
[解決済み] Prologでリストを平坦にする
-
[解決済み] ScalaのSeqとListの違いについて
-
error C2955: 'std::list' : クラステンプレートの使用にはテンプレート引数のリストが必要です。
-
IEnumerableとDataTableの互換性
-
リストコレクションに関するいくつかの一般的な操作