3
我正在学习序言。我想知道如何在prolog中表示以下事实?
“有些城市和一些城市之间有300英里”。 任何人都可以帮助please.I已经找到了足够的,但无法找到解决我的具体问题。在序言中代表以下事实
我正在学习序言。我想知道如何在prolog中表示以下事实?
“有些城市和一些城市之间有300英里”。 任何人都可以帮助please.I已经找到了足够的,但无法找到解决我的具体问题。在序言中代表以下事实
Prolog允许通过事实和规则来表示知识。一个 事实和规则具有以下格式:
A :- A1, .., An
其中A,A1,...,一个是所谓的文字。如果n = 0,那么它的一个事实是,如果n> 0那么它是一个规则。
一个文字具有folllowing语法,名称是谓词名称 和术语是谓词的参数:
literal = atom [ "(" term { "," term } ].
知识respresentation本身就是一种艺术。该表示可以有许多要求,这可以强制它具有某种形式。
但是,您可以将其视为一个字面表达式,用于使用 来保存表格。描述列名的列 没有进入的Prolog的事实和规则,但你可以使用 Prolog的comments进入列名,如:
% distance_between_cities(Atom, Atom, Float)
或者更具体:
% distance_between_cities(CityId, CityId, DistanceMiles)
第一评论后,你只要输入的事实:
distance_between_cities('New York, US','Los Angeles, US',2443.85).
distance_between_cities('New York, US','San Francisco, US',2563.89).
distance_between_cities('Los Angeles, US','San Francisco, US',347.18).
不同的谓词的名字可以命名各色nt excel表 可以这么说。一些prolog系统甚至有接口。
再见
请不要编辑您的问题的答案。如果您想回答自己的问题,请转到下面的答案框并发布您自己的答案。你甚至可以接受你自己的答案,作为最能帮助你的答案。这个结构保持StackOverflow干净。 – Sumurai8 2014-11-23 10:56:41
'distance_between_cities(someCityA,someCityB,300).'? – 2014-12-02 15:35:29
是的,我做了同样的事情,很久以前。无论如何,谢谢。 – Qubad 2014-12-10 12:53:39