Prologコマンドのリストはどこにありますか?

私はPrologを初めて使っていて、いくつかの値が日付になるかどうかを調べるためのプログラムを実行しようとしていますが、その言語で何ができるのか分かりません。私は命令を知らない。

たとえば、文字列の長さを取得したいのですが、これが可能かどうかはわかりません。

誰かが私にPrologコマンドのリストを表示できますか?私はJava用のtuPrologを使用しています。

ちなみに、私がやりたいプログラムは、2つまたは3つのパラメータを受け取り、あるタイプの日付(たとえば、10/2000、2011/09、11/03/1191など)であるかどうかをチェックします。

0

3 答え

tuPrologのユーザーガイドはこちらの場所で確認できます。 4.4節では、述部の組み込みについて説明します。

This link might also be of help. Working with strings in Prolog

And for parsing, given that one of the libraries in tuProlog is for DCGs: Prolog DCG presentation

PrologとdcgのStackoverflowを検索して、他人の質問と回答を見ることもできます。

2
追加された

ドキュメント .se/isl/sicstuswww/site/index.html "rel =" nofollow "> SICStus Prolog では、標準ライブラリについて説明しています。私はそれのどの部分がPrologの実装のための標準ではないか、それとも標準ではないのか完全には分かっていませんが、それはあなたを助けるかもしれません。

1
追加された

tuPrologのユーザーガイドは簡単に見つかります:ドキュメント第5章では、Prologコマンドについて説明します。

あなたの質問から、私はあなたが文字列として日付を受け取ったと推測し、あなたは日付文字列がどのフォーマットで到着するかわからない。

文字列を単語に変換するために text_term/2 を見ています(私は100%確信していません、私が使っているPrologシステムはそれとは異なる名前の述語を持っています)。次に、目的の構造の用語で用語を統一することによって、1つまたは2つのスラッシュが含まれているかどうかをテストできます(または別の形式であるか、まったく日付ではありません)。

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

The -> is "if-then", the ; is "else". You'll need to write a predicate that test for valid dates, which I called valid_date/3 above.

1
追加された