Предикат, который выводит номера всех позиций вхождения заданного элемента в строку - Prolog
Формулировка задачи:
Доброго времени суток. Подскажите, пожалуйста, как вывести номера всех позиций вхождения заданного элемента в строку. Вот код для вывода последней позиции вхождения:
Решение задачи: «Предикат, который выводит номера всех позиций вхождения заданного элемента в строку»
textual
Листинг программы
domains
int=integer
intl=int*
predicates
count(string,char,int,intl)
task(string,char,intl)
clauses
count("",_,_,[]).
count(S,P,N,[N|T]) :- frontchar(S,P,L),N1=N+1,count(L,P,N1,T).
count(S,P,N,T) :- frontchar(S,Q,L),Q<>P,N1=N+1,count(L,P,N1,T).
task(X,P,R) :- count(X,P,1,R).