2011-10-27 48 views
0

我是新來的Prolog,並試圖做一個程序來檢查一些值是否可以作爲日期,但我不知道我能用這種語言做什麼。我不知道命令。我在哪裏可以找到Prolog命令列表?

舉例來說,我想獲得一個字符串的長度,但我不知道這是否可能。

有人可以給我看Prolog命令列表嗎?我正在使用tuProlog for Java。

順便說一句,我想要做的程序是這樣的:接收兩個或三個參數,並檢查是否是某種類型的日期(例如:10/2000,2011/09,11/03/1191等。 )。

回答

1

documentation對於SICStus Prolog描述了它的標準庫。我不完全確定它的哪些部分是或者不是Prolog實現的標準,但它可能會對您有所幫助。

1

tuProlog的用戶指南很容易找到:Documentation。第5章包含您可以使用的Prolog命令。

從你的問題,我推斷你收到日期作爲一個字符串,你不知道日期字符串到達​​的格式。

我會看看text_term/2將字符串轉換爲術語(我不是100%確定的,我使用的Prolog系統具有不同的命名謂詞)。然後,你可以檢驗它是否包含一個或兩個斜槓(或爲另一種格式或不是日期的話),由統一的期限與所需的結構的期限:

Term = D/M/Y 

和測試,如果這是一個有效日期:

text_term(Text,Term), 
(Term = D/M/Y, valid_date(D,M,Y) -> 
    true 
; Term = M/D/Y, valid_date(D,M,Y) -> 
    true 
; ... 

->是 「如果 - 那麼」 中,;是 「其他」。 您需要編寫一個測試有效日期的謂詞,我稱之爲valid_date/3

相關問題