我將誠實和前言說這是作業,但我非常需要幫助。序言:兩個對象之間的差異關係
我是Prolog的新手,來自C++和Javascript,無論我嘗試多麼努力,我都無法得到它。
我應該做的是能夠找到兩個日期之間的差異(假設非閏年)。
基本上我有一個知識庫與佈局類似的信息:
object(A, B).
object(A, B).
...
其中A表示月和B表示該月的總天數。 (eg。object(1,31)。)
我應該用於輸入的表達式是: 差異(對象(A,B),對象(A,B),N)。 (N =對象之間的差異)。
我已經嘗試了一些不同的東西(我知道這是不是在正確的軌道上),並且一直沒能得到進一步則:
difference(object(A,B), object(A,B),N):-
days(M,D), days(M,D),
Y = 365-D,
N is Y.
我不明白怎麼做這兩個對象註冊爲我可以操作的單個事物,因此可以繼續解決問題。
有人請請請指出我在正確的方向嗎?
謝謝
家庭作業問題(根據請求)。 假設存在描述非閏年的每個日曆月有多少天在 中的天關係。
days(1,31).
days(2,28).
(依此類推)。
結構dateObject(M,D)描述日期。例如dateObject(6,5)將表示6月5日。 寫出關係差異(From,To,N),其中N是起始日期之間的天數 日期From和結束日期To。起始日期不包括在計數中。對於 例如:
?- difference(dateobject(2,1),dateobject(2,2),N).
N = 1.
如果在一個日期當天或月份值是無效的(例如dateobject(4,31),dateobject(13,1),則N的值 返回應爲-1如果。起始日期晚於要那麼-1誤差值也應爲N.
「對象之間的區別」是什麼意思? – Enigmativity
我不明白你的意思是「將這兩個對象註冊爲我可以操作的單個事物」? – Enigmativity
@Enigmativity基本上,對象代表幾個月中的日期: 天(1,31)。 不同(dateobject(4,30),dateobject(5,15),N)。 – TheLeftRight