2012-11-21 19 views

回答

0

我用SWI序言中,你可以使用替代謂詞(在其他堆棧溢出問題找到),具有扁平化操作的列表上結合:

:- use_module(library(lists)). 

replace(_, _, [], []). 
replace(O, R, [O|T], [R|T2]) :- replace(O, R, T, T2). 
replace(O, R, [H|T], [H|T2]) :- H \= O, replace(O, R, T, T2). 
現在

replace(1,[$,1,$],[4,3,2,1],NewList),flatten(NewList,FlattendList). 
NewList = [4, 3, 2, [$, 1, $]], 
FlattendList = [4, 3, 2, $, 1, $] ; 

中當然,你可以爲此構建漂亮的謂詞。

+0

感謝您的回覆,我明白了,但現在我又有一個小問題: 如果我有這樣一個列表: [4,3,1,$,1,$,$,2,$ ,4,$,$,5,$] 如何刪除重複的: $$ 爲了有這樣: [4,3,1,$,1,$,2,$, 4,$,5,$] 非常感謝:) – user1841520

+0

最後一件事,我該如何合併兩部分相同的列表:[1,2,3,4,$,5,$,5,$,6 ,7] => [1,2,3,4,$,5,5,$,6,7]?謝謝。 – user1841520