Ответ в теме: Поиск слов с одной буквой на Prolog

      Комментарии к записи Ответ в теме: Поиск слов с одной буквой на Prolog отключены
#2675

Для подсчета вхождений символа g в строку (слово) примените функцию count для строк в Turbo Prolog.
Тогда, все что остается сделать — попросить интерпретатор найти такое слово (отделяемое fronttoken), что count вернет для него единицу:

check_single_g(String):-
fronttoken(String, HeadWord, TailString),
count(HeadWord, "g", 1), !.
check_single_g(String):-
fronttoken(String, _, TailString),
check_single_g(TailString).

Мы отделяем первое слово строки, если в нем единственная буква "g" — завершаем работу (выполнив отсечение, т.к. найдено единственное решение). В противном случае отделяем от строки слово, сохраняя его значение в анонимную переменную (задаваемую символом подчеркивания), т.к. оно нам не потребуется. В остальной части строки выполняем рекурсивную проверку.