我是Prolog的新手,刚刚开始四处寻找。我阅读了Simply Logical和的"定义子句语法"一章,现在就学习Prolog,所以现在我想开始锻炼,但我被卡住了。我必须读取具有以下语法的文件
setName = {elemen1, element2,..., elementN}.
element1: element2 > element3.
现在我已经读到,当你定义一个DCG时,你有一个免费的解析器,所以我想这样做,把数据从我的文件中获取到Prolog程序中。
我的问题是,在我读过的所有例子中,它们总是提供一个像这样的基本字典
article --> [the]
但我不能这么做,因为我不知道文件中要写什么。
有什么建议吗?
在SWI Prolog中,考虑使用library(dcg/basics)
。它提供了可以在DCG中使用的构建块。专注于对文件内容的清晰声明性描述,用DCG来说明这一点。然后使用library(pio)
中的phrase_from_file/2
将DCG应用于文件。