Сканирование списка в прологе - PullRequest
0 голосов
/ 01 октября 2011

Я хочу отсканировать список в Прологе. В частности, я хочу написать предикат scan_list (список), и я хочу, чтобы он проверял, является ли текущий элемент положительным целым числом, и если это так, выведите его.

Спасибо-х.

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Если это домашнее задание, будьте уверены, что единственный способ выучить любой язык программирования - попрактиковаться в этом и подумать о заданиях.Тем не менее, вот версия, которая может быть, что вы хотите

scan_list([]). 
scan_list([H|T]) :- H > 0,!, print(H),nl,scan_list(T). 
scan_list([_|T]) :- scan_list(T). 

Это работает так:

?- scan_list([1,-2,7,9,0,-1,14]).
1
7
9
14
yes
1 голос
/ 03 октября 2011

В SWI-Prolog есть include/3, например Вы можете написать

?- include(<(0), [1, -2, 7, 9, 0, -1, 14, 0.8], L).
L = [1, 7, 9, 14, 0.8].

(Предупреждение: этот конкретный код принимает больше чисел, чем натуральных чисел.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...