たとえば、次の番号リストがあります。
[1,2,3,4,5,6,7,8,9,10].
たとえば、番号を検索して、BEFOREとAFTER7
を挿入する必要があります。"$"
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, $] ;
もちろん、そのためのかなりの述語を作成することができます。