2013-01-19 22 views
1

什麼是從標準輸入讀取的B-Prolog的數字或幾個空間分隔的數字(後面沒有句點)最簡單的方法?閱讀數字在B-Prolog的

例如,對於Eclipse我寫這些簡單謂詞(我不需要錯誤處理):

read_number(N) :- 
    read_token(Token, _), 
    (
     Token == - 
    -> 
     read_token(Nabs, _), 
     N is -1 * Nabs 
    ; 
     N is Token 
    ). 

read_numbers_list(Ns) :- 
    read_string(end_of_line, _, String), 
    split_string(String, " ", "", Ss), 
    (foreach(S, Ss), foreach(N, Ns) do 
     number_string(N, S)). 

但寫這樣的事情對於B-Prolog的看起來過於複雜,我 - 有沒有read_token或split_string ...

它有這樣一個平凡的任務一個簡單的方法?也許我忽略了一些標準謂詞?

回答

0

我結束了剛剛預處理輸入序言外,然後使用read/1

此外,從B-Prolog的創造者NENG發周(https://groups.google.com/forum/?fromgroups#!topic/comp.lang.prolog/KSXc2QTWZck)信息:

您可以使用內部謂詞,稱爲read_next_token(類型,纈氨酸), 你的目的。另一個謂詞,稱爲b_NEXT_TOKEN_ff(Type,Val), 做同樣的事情,但速度更快。這些謂詞不是 記錄。