我开始学习如何使用 DCG。我想知道花括号{...}
是用来做什么的?何时(何时不需要)需要它们?例如:
read_lines -->
{ read_line_to_codes(current_input, Codes) } ,
(
{ Codes == end_of_file } -> []
;
{ atom_codes(Line, Codes) } ,
[Line],
read_lines
) .
针对这个问题提供:避免 Prolog 中 append/3 的线性成本