Поиск в прологе с диапазоном определенных значений

#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. чувак, ты понятия не имеешь, я слишком долго боролся с этим ! Спасибо!