0

目前我正在编写一个 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).

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

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

4

1 回答 1

1

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

AnotherThingThoughIsYourNamingConventionForExamplelinkedPoints/2: is_it_not_much_more_readable_to_use_underscores_like_linked_points/2?

于 2013-10-27T00:00:16.363 回答