Простейший QT TCP-клиент

Позвольте мне предположить, что вы хотите заменить подстроку подпоследовательности в списке другим списком.

Вот общий способ, как это сделать. Возможно, вы захотите вставить дополнительные условия в программу.

replacement(A, B,  Ag, Bg) :-
   phrase((seq(S1),seq(A),seq(S2)), Ag),
   phrase((seq(S1),seq(B),seq(S2)), Bg).

seq([]) --> [].
seq([E|Es]) --> [E], seq(Es).

И да, это может быть оптимизировано немного - даже его свойство завершения будет полезно. Но концептуальная ясность - довольно ценная ценность ...

Редактирование: ваш пример запроса:

?- replacement([2,3], [5,6], [1,2,3,4], Xs).
Xs = [1, 5, 6, 4] ;
false.
16
задан gary 29 March 2018 в 15:51
поделиться