2013-08-18 34 views
2

我開始學習如何使用DCG。我想知道什麼大括號{...}用於?何時(以及何時不需要)?例如:DCG中的大括號{}

read_lines --> 
    { read_line_to_codes(current_input, Codes) } , 
    (
    { Codes == end_of_file } -> [] 
    ; 
    { atom_codes(Line, Codes) } , 
    [Line], 
    read_lines 
) . 

響應於這個問題提供:Avoid linear cost of append/3 in Prolog

+0

http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse33 – 2013-08-19 05:59:39

回答

2

在DCG規則中,{}的用於封裝的Prolog目標,否則那些將被解釋爲非端子。