Ответ в теме: Найти слово максимальной (минимальной) длины. Turbo Prolog

      Комментарии к записи Ответ в теме: Найти слово максимальной (минимальной) длины. Turbo Prolog отключены
#1940

Описание задачи начни с описания того, что ты считаешь словом. Разработчики Turbo Prolog и Visual Prolog решили, что слово содержит либо слова, либо буквы, но не все сразу.
Чтобы решить задачу ты можешь преобразовать свою строку в список символов, затем получить из него список слов. После этого, задача решается гораздо проще:

find_longest_word([FirstWord|OtherWords], LongestOtherWord):-
find_longest_word(OtherWords, LongestOtherWord),
length(LongestOtherWord, LengthLongestOtherWord),
length(FirstWord, LengthFirstWord), 
LengthLongestOtherWord > LengthFirstWord, !.
find_longest_word([FirstWord|_OtherWords], FirstWord).

Функция разделяет исходный список на перво слово (FirstWord) и остальные (OtherWords). Выполняет рекурсивный поиск самого длинного слова (LongestOtherWord) среди OtherWords, определяет его длину (предикатом length) и сравнивает с длиной первого слова. В зависимости от результатов сравнения возвращает либо первое слово, либо слово, вычисленное рекурсивно.