序言:访问从父规则读(Prolog: Access read from parent rule)

2019-09-23 03:26发布

我希望有一个具体的规则在SWI-Prolog的读取用户输入的数据,是这样的:

process( ... ) :-
    % do_stuff
    read_values( ... ),
    % do_more_stuff with X and Y here.

read_values( ... ) :-
    write('Please enter X: '),        
    read(X),
    write('Please enter Y: '),        
    read(Y).

那可能吗?

Answer 1:

那么你还挺已经有了解决方案:

process :-
    % do_stuff
    read_values(A, B),
    % do_more_stuff with X and Y here
    atom_concat(A, B, C),
    writeln(C).

read_values(X, Y) :-
    write('Please enter X: '),        
    read(X),
    write('Please enter Y: '),        
    read(Y).

举例来看:

?- process.
Please enter X: a.
Please enter Y: b.
ab
true.


文章来源: Prolog: Access read from parent rule
标签: prolog