Prolog返回一个列表而不是几个可能的字符串

2rs*_*2ts 1 string logic list prolog

answer("Yes").
answer("No").
answer("Variable = value").
receive(A) :- answer(A).


2 ?- answer(A).

A = [89, 101, 115]

Yes
Run Code Online (Sandbox Code Playgroud)

我想要A = "Yes"等等.我做错了什么?

gus*_*bro 5

您将获得字符串Yes,No和Variable = value的列表表示.

如果要使用术语Yes,No和Variable = value来实例化A,则应将它们括在单引号而不是双引号之间:

answer('Yes').
answer('No').
answer('Variable = value').
Run Code Online (Sandbox Code Playgroud)

如果你想返回包含双引号的术语,你应该包括它们,但也要用单引号括起每个术语:

answer('"Yes"').
answer('"No"').
answer('"Variable = value"').
Run Code Online (Sandbox Code Playgroud)