标签: prolog
以下代码在SWI-Prolog中运行:
?-foreach(member(X ,["1","2","3"]) ,(number_codes(Y,X),writeln(Y))). 1 false. ?- foreach(member(X ,["1","2","3"]) ,writeln(X)). [49] [50] [51]
答案 0 :(得分:2)
foreach / 2比forall更复杂,并且您遇到了使用的变量量化产生影响的情况。尝试改为
?- forall(member(X, ["1","2","3"]), (number_codes(Y,X), writeln(Y))). 1 2 3
真。
似乎foreach / 2保留了Y的绑定。
Y