2012-09-27 69 views
3

讀書,我想在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). 

這可能嗎?

回答

3

那麼你還挺已經有了解決方案:

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. 
+0

我還做'read_values'非伸縮(或如何調用),但是這是個人喜好的問題。 – Lyth

+1

@Lyth:如果你的意思是'不可回溯'(或確定性):讀寫已經是那種類型 – CapelliC

+0

謝謝,@Mog。只需要將這些部分放在一起來實現如何去做。 – vmassuchetto