Есть ли способ определить константы в прологе?
Я хотел бы написать что-то вроде
list1 :- [1, 2, 3].
list2 :- [4, 5, 6].
predicate(L) :- append(list1, list2, L).
Работа, которую я использую сейчас, это
list1([1, 2, 3]).
list2([4, 5, 6]).
predicate(L) :-
list1(L1),
list2(L2),
append(L1, L2, L).
но немного неуклюже связывать "бесполезную" переменную, такую как каждый раз, когда мне нужно получить доступ к константе.
Другая (даже более уродливая) работа вокруг, я полагаю, будет включать cpp в цепочку построения.
(В моем фактическом приложении список - это большой LUT, используемый во многих местах.)