-2

たとえば、次の番号リストがあります。

[1,2,3,4,5,6,7,8,9,10].  

たとえば、番号を検索して、BEFOREとAFTER7を挿入する必要があります。"$"7

[1,2,3,4,5,6,$,7,$,8,9,10].  

これどうやってするの?

4

1 に答える 1

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, $] ;

もちろん、そのためのかなりの述語を作成することができます。

于 2012-11-21T11:58:23.823 に答える