Используйте встроенный numlist/3
:
?- numlist(1, 5, L).
L = [1, 2, 3, 4, 5].
?- numlist(1, 0, L).
false.
В SWI-Prolog вы можете использовать listing(numlist)
, чтобы увидеть, как он был реализован.никогда не будет генерировать пустой список.Если вы хотите этого, то вам нужно написать простую оболочку, которая отображает сбой в пустой список.