DCGの使い方を学び始めています。中括弧{...}
は何に使われるのだろうと思っていましたか?それらが必要な場合 (およびそうでない場合) はいつですか? 例えば:
read_lines -->
{ read_line_to_codes(current_input, Codes) } ,
(
{ Codes == end_of_file } -> []
;
{ atom_codes(Line, Codes) } ,
[Line],
read_lines
) .
この質問への回答として提供: Prolog で append/3 の線形コストを回避する