良い日にリストを変性する、フィルタリングとプロローグ
私はリスト[3,9,11,2,14]与えられた、私は6 Iよりも大きい任意の値をフィルタしたいというようなタスクを持っています今すぐ働いてください。
sift([],[]).
sift([X|T], [X|Result]):-
X > 6, /* is X greater than 6 */
write(isList(Result)),
/* append([X]|['CCC'], [Result]), but this didn't work */
sift(T,Result). /* if so then go find the rest */
sift([ThrowAway|Tail],Result):- /* disregard the head */
sift(Tail,Result). /* and look in the tail */
前述のとおり、正しい結果が返されます。私のジレンマは、がの値が6より大きい場合、条件に一致する番号の後に追加の値 'CCC'を追加したいと考えています。だから、
[9、CCC、11、CCC、14、CCC]のようになります。
私は、リストの内容を書き出すためにしようとしましたが、私はそれを行うとき、私は値を取得する:私はそれが何であるかを確認するために、リストの内容を点検しようとしている
12 ?- sift([3,9,11,2,14], Results).
isList(_G2271)isList(_G2276)isList(_G2281)
Results = [9, 11, 14].
13 ?-
を。
私はこれをどのように行うことができますか?
TIA、
coson