2013-08-18 2 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 –

ответ

2

В правиле DCG, то {} 'ы используется для инкапсулирования целей Prolog, в противном случае те, будет интерпретироваться как не-терминалы.