0

次のように、特定のリスト内のメンバーの出現を削除するプログラムを作成したいと思います。

deleteall(1,[1,2,3,1,3,2,5],Out)                
Out= [2,3,3,2,5]

どうやってやるの?これは私の試みです:

deleteall(X,[],[]).                
deleteall(X,[H1|T1],[H2|T2]) :- deleteall (X,T1,T2).
4

1 に答える 1

0

以下をお試しください。元のプログラムに条件がありませんでした。

deleteall(_,[],[]).
deleteall(X,[X|T1],T2) :- deleteall(X,T1,T2).
deleteall(X,[H1|T1],[H1|T2]) :- not(X=H1), deleteall(X,T1,T2).
于 2012-04-21T01:46:34.143 に答える