Где я могу найти список команд Prolog? - PullRequest
0 голосов
/ 28 октября 2011

Я новичок в Прологе и пытаюсь создать программу, чтобы проверить, могут ли некоторые значения быть датой, но я не знаю, что мне делать с языком. Я не знаю команд.

Например, я хочу получить длину строки, но я не знаю, возможно ли это.

Кто-нибудь может показать мне список команд Prolog? Я использую tuProlog для Java.

Кстати, программа, которую я хочу сделать, такова: получить два или три параметра и проверить, является ли какой-то тип даты (например: 10/2000, 2011/09, 11/03/1191 и т. Д.) .

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Вы можете ознакомиться с руководством пользователя для tuProlog по этому адресу В разделе 4.4 описаны встроенные предикаты.

Эта ссылка также может помочь. Работа со строками в Прологе

И для синтаксического анализа, учитывая, что одна из библиотек в tuProlog предназначена для DCG: Представление Prolog DCG

Вы можететакже найдите Stackoverflow для Пролога и dcg, чтобы увидеть вопросы и ответы других.

1 голос
/ 28 октября 2011

Руководство пользователя tuProlog легко найти: Документация .В главе 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 выше.

1 голос
/ 28 октября 2011

Документация для SICStus Prolog описывает стандартную библиотеку. Я не совсем уверен, какие его части являются или не являются стандартными для реализации Пролога, но это может помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...