Ответ в теме: Вывести каждый десятый символ текстового файла – Turbo/Visual Prolog

      Комментарии к записи Ответ в теме: Вывести каждый десятый символ текстового файла – Turbo/Visual Prolog отключены
#1888

Посмотрите тему про работу с файлами в Visual Prolog. Можно считать строку с помощью readln, преобразовать ее в список, а затем выполнить следующую функцию вместо стандартного write:

write_each_10_element(_Iterator, _Limit, []):-!.
write_each_10_element(0, Limit, [Head|Tail]):-
  write(Head), nl, !,
  write_each_10_element(Limit, Limit, Tail).
write_each_10_element(Iterator, Limit, [_Head|Tail]):-
  TailIterator = Iterator - 1, 
  write_each_10_element(TailIterator, Limit, Tail).

Первым аргументом он принимает текущее значение счетчика необработанных элементов (изначально совпадает с Limit), вторым – номер элемента, который надо выводить (в вашем случае – десять), третьим – исходный список.
Если список пуст – правило завершает работу.
Если счетчик (итератор) равен нулю – выводится первый элемент списка, а остальные обрабатываются рекурсивно, при этом в качестве счетчика передается Limit, т.к. нам надо обработать следующую “пачку” элементов.
Во всех остальных случаях правило ничего на экран не выводит, но уменьшает значение итератор и передает его и хвост списка для рекурсивной обработки.