Вы можете преобразовать список в термин, функтор которого является главой списка, используя =..
(также называемый Univ).Например:
?- a(b) =.. [a, b].
true.
Вы можете превратить термин в факт в базе данных Prolog, используя assert/1
.
. Таким образом, решение вашего вопроса будет таким:
?- List = [apple, orange], Term =.. [fruits | List], assert(Term).
List = [apple, orange],
Term = fruits(apple, orange).
Теперь вы можете запросить ваш новый факт, чтобы убедиться, что он там есть:
?- fruits(X, Y).
X = apple,
Y = orange.