リストからすべての偶数の順序要素を削除する1つのプロローグステートメントを書きたい
入力: [a,b,c,d,e]
出力:[a,c,e]
誰かが私にこれのプロローグステートメントを書く方法を手伝ってもらえますか?
リストからすべての偶数の順序要素を削除する1つのプロローグステートメントを書きたい
入力: [a,b,c,d,e]
出力:[a,c,e]
誰かが私にこれのプロローグステートメントを書く方法を手伝ってもらえますか?
これがあなたの問題に対する私の解決策です。
remove_even_order([],[]). %this line says if I somehow get to an empty list the result I should return is an empty list
remove_even_order([Head_ODD|[]],[Head_ODD]).
remove_even_order([Head_ODD,Head_EVEN|Tail],[Head_ODD|RezultTail]) :- remove_even_order(Tail,RezultTail).
問題は些細なことですが、もしよろしければ、各行にコメントを差し上げます。
リクエストしたコメントは次のとおりです。
最初の行: この行は、何らかの形で空のリストに到達した場合、返す必要がある結果は空のリストであることを示しています
2 行目:ここでは、リストが 1 つの要素 (Head_ODD) のみで構成されている場合、結果のリストもそのヘッドのみで構成されている必要があります。
3 行目:リストに 2 つ以上の要素 (Head_ODD、HEAD_EVEN + Tail) がある場合、結果リストに HEAD_ODD のみを配置し、残りの Tail を再帰的に解決しようとします。