swi prolog在任何写入之前执行所有readln

时间:2017-04-17 17:00:13

标签: prolog

在我的代码中,似乎所有requests语句都在单个readln完成之前执行。 我的代码:

write

目前如何运作

go :- readln(A), write(A), readln(B), write(B).

但我想要

? go.
|: foo
bar
[foo][bar]
true.

知道什么可能导致这种行为以及如何改变它?

1 个答案:

答案 0 :(得分:0)

正如@CapelliC建议:

?- listing(go).
go :-
    read_line_to_codes(user_input, A),
    format("~s~n", [A]),
    read_line_to_codes(user_input, B),
    format("~s~n", [B]).

true.

?- go.
|    foo
foo
|    bar
bar
true.