1

リストからすべての偶数の順序要素を削除する1つのプロローグステートメントを書きたい

入力: [a,b,c,d,e] 出力:[a,c,e]

誰かが私にこれのプロローグステートメントを書く方法を手伝ってもらえますか?

4

1 に答える 1

2

これがあなたの問題に対する私の解決策です。

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 を再帰的に解決しようとします。

于 2012-11-29T22:06:26.203 に答える