Ответ в теме: Удалить из данной строки все повторные вхождения символов

      Комментарии к записи Ответ в теме: Удалить из данной строки все повторные вхождения символов отключены
#2192

Предикат удаления повторных вхождений символов должен работать следующим образом:

  1. если исходная строка пуста – результатом является пустая строка;
  2. исходная строка разбивается на первый символ (FirstSymbol) и остальные символы (StringTail);
  3. удаляются все вхождения символа FirstSymbol из StringTail – в результате формируется StringTailWithoutSymbol;
  4. StringTailWithoutSymbol обрабатывается рекурсивно, в результате формируется Tail;
  5. в качестве результата возвращается строка, составленная из FirstSymbol и Tail.

Вы можете обрабатывать непосредственно строки, но удобнее обрабатывать списки. Я предлагаю воспользоваться готовыми предикатами для Преобразование строки в список символов и наоборот. После этого можно воспользоваться готовой функцией delete для Удаление элементов из списка.

В Ваш код я не вникал, т.к. он оформлен с нарушением Соглашения о кодировании на Prolog – мне очень сложно его читать и, тем более, понимать.