0

私は初心者のプロローグプログラマーです。課題については、リストXが2つの要素のリストであり、最初の要素が2番目の要素と同じである場合にのみ、成功する基本的なプログラムが必要です。

私のプロローグの見方からすると、プログラムはかなり小さいように見えるので、これを次のように入力しました。

firstPair(x,x).

swiplで実行すると、次のように出力されます。

Syntax error: Operator expected

他にやらなければならないことがありますか?たとえばfirstPair(1,2)でこれを実行すると思いました。これは、それが誤りであることを知るために必要なすべてです。

4

2 に答える 2

3

まず、小文字xは変数ではなく、アトムです。x問題を解決するには大文字にします。

firstPair(X,X).

次に、これをインタープリターに入力しません。むしろ、それをファイルfirstPair.plに書き込んでから、そのファイルをPrologに読み込みます。

コマンドプロンプトで、次のように入力します。

['firstPair.pl'].

Enterキーを押します。firstPair/2これで、ルールを使用できます。

firstPair/1最後に、課題はリストについて話しているので、インストラクターはあなたに書くことを望んでいたと思いますfirstPair/2

firstPair([X,X]).
于 2012-12-05T15:20:09.243 に答える
0

あなたのプログラム/事実

firstPair(X,X).

リスト、アトム、変数など、指定された2つの引数を統合できれば、成功します。仕様を満たすために、

リストXが2つの要素のリストであり、最初の要素が2番目の要素と同じである場合にのみ、成功するプログラム。

次のようなものが必要です。

list_of_two_elements( [X,X] ).

これは、同一である、または統合によって作成できる2つの要素のリストである(または統合できる)単一の用語を渡した場合に成功します。たとえば、次のすべてが成功します。

  • list_of_two_elements( X ).

    成功すると、変数Xは、のような同じ非バインド変数を含む2つの要素のリストで統合されます[V1,V1]

  • list_of_two_elements( [1,1] ).

  • list_of-two_elements( [1,X] ).(成功すると、Xここは整数で統合され1ます。)

于 2012-12-05T17:15:49.710 に答える