-2
我有,比如這個號碼錶:Prolog的搜索元素,並添加符號
[1,2,3,4,5,6,7,8,9,10].
我要搜索一些例如7
,並插入"$"
BEFORE和AFTER 7
:
[1,2,3,4,5,6,$,7,$,8,9,10].
我該怎麼做?
我有,比如這個號碼錶:Prolog的搜索元素,並添加符號
[1,2,3,4,5,6,7,8,9,10].
我要搜索一些例如7
,並插入"$"
BEFORE和AFTER 7
:
[1,2,3,4,5,6,$,7,$,8,9,10].
我該怎麼做?
我用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, $] ;
中當然,你可以爲此構建漂亮的謂詞。
感謝您的回覆,我明白了,但現在我又有一個小問題: 如果我有這樣一個列表: [4,3,1,$,1,$,$,2,$ ,4,$,$,5,$] 如何刪除重複的: $$ 爲了有這樣: [4,3,1,$,1,$,2,$, 4,$,5,$] 非常感謝:) – user1841520
最後一件事,我該如何合併兩部分相同的列表:[1,2,3,4,$,5,$,5,$,6 ,7] => [1,2,3,4,$,5,5,$,6,7]?謝謝。 – user1841520