在终端中查询b-prolog时,在将列表分配给变量并使用内置"成员"的变量时,成员函数似乎表现不正常。功能。使用变量时,我无法解释结果。谁能告诉我这是否是正确的行为以及为什么会这样?
B-Prolog Version 8.1, All rights reserved, (C) Afany Software 1994-2014.
| ?- List = [a,b,c,d].
List = [a,b,c,d]
yes
| ?- member(a,List).
List = [a|_14c] ?;
List = [_148,a|_154] ?;
List = [_148,_150,a|_15c] ?;
List = [_148,_150,_158,a|_164] ?;
List = [_148,_150,_158,_160,a|_16c] ?
yes
| ?- member(a,[a,b,c,d]).
yes
| ?-
我正在使用在Windows 10 Pro上运行的bprolog v 8.1(10.0.143393 Build 14393)
答案 0 :(得分:1)
顶级查询是独立的,不共享变量。如果你改为尝试:
| ?- List = [a,b,c,d], member(a,List).
您将获得预期的结果。