#prolog
Вопрос:
Я пытаюсь использовать findall, но я хочу, чтобы одно из значений аргумента было диапазоном значений. Я видел еще один пост, в котором используется «между», но, похоже, я не могу заставить его работать. Это код, который я хочу изменить:
lists(A):- findall(X,gradrate(2011,_,X),A).
Я хочу по существу:
lists(A):- findall(X,gradrate(2011-2015,_,X),A).
В принципе, мне нужен список всех выпускников в период с 2011 по 2015 год. У меня уже есть куча фактов, написанных со всеми выпускниками, т. Е.
gradrate(2011,asian,85.6).
Любая точка в правильном направлении была бы потрясающей, спасибо!
Ответ №1:
Попробуй:
lists(A):- findall( X, ( gradrate(Year, _, X), between(2011, 2015, Year) ), A ).
Комментарии:
1. чувак, ты понятия не имеешь, я слишком долго боролся с этим ! Спасибо!