我想读取一个包含每行名称的文件。而且我不知道如何使用SWI Prolog做到这一点。我对C / C ++有足够的了解,所以有什么方法可以用Prolog做同样的事情吗?
答案 0 :(得分:2)
在我看来,从SWI Prolog中读取文件的最佳方式(特别是如果你想做一些标准谓词未涵盖的事情,比如从流中读取Prolog术语的read / 2)就是先写一个DCG( =明确的句子语法)以声明的方式指定你想要描述的内容。您可以在查询中以交互方式使用DCG来尝试它(即,解析并且通常还生成它描述的字符串)。然后,使用SWI-Prolog的库(pio)将DCG应用于带有phrase_from_file / 2的文件。