Prolog 可以断言一个列表吗?

Prolog 可以断言一个列表吗?,prolog,Prolog,我想问一下,是否可以用一个列表来代替单数术语?例如,我尝试了以下方法: assert(user_chosen_fruits([Grapes, Apples, Peaches])). X = [_4872, _4878, _4884]. 但是,当我使用user\u selected\u fruits(X)进行查询时,会返回以下信息: assert(user_chosen_fruits([Grapes, Apples, Peaches])). X = [_4872, _4878, _4884]

我想问一下,是否可以用一个列表来代替单数术语?例如,我尝试了以下方法:

assert(user_chosen_fruits([Grapes, Apples, Peaches])).
X = [_4872, _4878, _4884].
但是,当我使用
user\u selected\u fruits(X)进行查询时,
会返回以下信息:

assert(user_chosen_fruits([Grapes, Apples, Peaches])).
X = [_4872, _4878, _4884].

我是否遗漏了一些输出处理,或者我的断言完全错误?我不确定是否有可能断言列表。谢谢您的帮助。

您正在断言一个变量列表,因此在调用
user\u selected\u fruits/1
时会得到绑定。请尝试:

| ?- assertz(user_chosen_fruits(['Grapes', 'Apples', 'Peaches'])).

另外,
assert/1
谓词已被弃用。请改用标准的
asserta/1
assertz/1
谓词。

Woah,非常感谢您快速准确的回答!现在你告诉我,这是有道理的。也谢谢你提醒我不要使用这个警告。