我在哪里可以找到Prolog命令列表?

时间:2011-10-27 22:08:09

标签: date prolog command tuprolog

我是Prolog的新手,并尝试做一个程序来检查某些值是否可以作为日期,但我不知道该怎么处理该语言。我不知道命令。

例如,我想得到一个字符串的长度,但我不知道这是否可行。

有人可以给我看一个Prolog命令列表吗?我正在使用tuProlog for Java。

顺便说一句,我想要做的程序是:接收两个或三个参数并检查是否是某种类型的日期(例如:10 / 2000,2011 / 09,11 / 03/1191等)

3 个答案:

答案 0 :(得分:2)

您可以查看tuProlog at this location的用户指南 第4.4节讨论了内置谓词。

此链接也可能有所帮助。 Working with strings in Prolog

对于解析,假设tuProlog中的一个库用于DCG: Prolog DCG presentation

您还可以搜索Stackoverflow for Prolog和dcg以查看其他人的问题和答案。

答案 1 :(得分:1)

documentation SICStus Prolog描述了其标准库。我不完全确定Prolog实现的哪些部分或不是标准部分,但它可能对您有帮助。

答案 2 :(得分:1)

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

根据您的问题,我推断您收到日期为字符串,而您不确定日期字符串的格式是什么。

我会看text_term/2将字符串转换为一个术语(我不是100%肯定,我使用的Prolog系统有一个不同命名的谓词)。然后,您可以通过将Term与所需结构的术语统一来测试它是否包含一个或两个斜杠(或者是另一种格式或根本不是日期):

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
; ...

->是“if-then”,;是“else”。 您需要编写一个测试有效日期的谓词,我在上面调用了valid_date/3