Is there any way to define constants in prolog?
I'd like to write something like
list1 :- [1, 2, 3].
list2 :- [4, 5, 6].
predicate(L) :- append(list1, list2, L).
The work-around I'm using now is
list1([1, 2, 3]).
list2([4, 5, 6]).
predicate(L) :-
list1(L1),
list2(L2),
append(L1, L2, L).
but it's a bit clumsy to bind a "useless" variable like this every time I need to access the constant.
Another (even uglier) work around I suppose, would be to include cpp in the build-chain.
(In my actual application, the list is a large LUT used in many places.)