Ответ в теме: Список символов, которые входят в обе строки

      Комментарии к записи Ответ в теме: Список символов, которые входят в обе строки отключены
#1759

questioner
Участник

domains
  str=string
  list=char*
Predicates
  str_pos(char,str,integer)
  append(list,list,list)
  check(str,str,list,list)
Clauses
  append([ ], L, L).
  append([H|T], L, [H|T1]) :-append(T,L,T1).
 
  str_pos(C,S,1):-
    frontchar(S,C,_),!.             
  str_pos(C,S,N) :-
    frontchar(S,_,S1),
    str_pos(C,S1,N1),
    N1<>0,!,N=N1+1.
  str_pos(_,_,0).
 
  check("",_,M,M):-!.
  check(S,S1,L,List):-
    frontchar(S,H,T),
    str_pos(H,S1,R),R<>0,
    append(L,[H],L1),
    check(T,S1,L1,List).
  check(S,S1,L,List):-
    frontchar(S,_,T),
    check(T,S1,L,List).

Посмотрите пожалуйста. Я пытаюсь портировать этот код в SWI Prolog, а он ни в какую работать не хочет.