任意数据的 Prolog 代码(因此不必对其进行硬编码)



目前我正在编写一个Prolog程序,处理从一个位置到另一个位置的各种不同方法,并计算这些路径的距离。

到目前为止,我一直在将数据子句硬编码到我的代码中,作为测试目的的快速解决方法,但我需要以这样一种方式编写代码,以便可以将具有适当格式的数据的数据文件读入程序。

例如

path(1, 4).
setRoutes([[1, 2, 45], [1, 3, 135],
           [2, 4,135], [3, 4, 45]] ).

将是输入数据的格式,因此我已将其硬编码到我的程序中。以下内容不是输入数据的一部分,但我也对其进行了硬编码,以便在我的程序中使用。如何使实际输入的信息"通用",同时使我自己的代码相对于原始输入"通用"?

linkedPoints(1, 2).
linkedPoints(1, 3).
linkedPoints(2, 4).
linkedPoints(3, 4).

我的问题是:我如何从必须将数据硬编码到程序本身到创建将读取用户输入或文件输入数据的"模板"?

如果我需要澄清这一点,请告诉我...感谢您的帮助!

很简单:您可以使用内置谓词read/1从(例如)文件中读取Prolog术语。因此,只要您的数据像您的示例中一样表示,无论将其放置在程序本身还是其他地方都没有什么区别,因为Prolog术语可以从Prolog中轻松处理。

AnotherThingThoughIsYourNamingConventionForExamplelinkedPoints/2is_it_not_much_more_readable_to_use_underscores_like_linked_points/2

相关内容

最新更新