1

チュートリアルを読んでいますが、単一のリストを再帰する方法を理解するのが難しいと感じています。基本ケースが何であるか、その理由、および再帰で何をすべきかについて、誰かが簡単に説明してくれませんか。私のコードは次のとおりです。

type(string).

type(int).

instance(X,Y):- X, Y.

variable(_).

statement([]).

statement(A|B):- A, statement(B).

コードの目的は、次のようなものをチェックするライト タイプ チェッカーを作成することです。

String s; int i; i = s.length();

私はこれをテストとして渡しています:

statement([instance(type(string), variable(s))]).

それをリストに入れて再帰し、if の後に置くことにしました。ルールの 1 つに一致する場合、それは true になります。現在、型のインスタンス化を機能させることができることを確認しています。どんな助けでも大歓迎です!前もって感謝します。

4

1 に答える 1

1

角かっこがありません

statement(A|B)

そのはず

statement([A|B])

再帰ルールの残りの部分は問題ないように見えます。

于 2012-05-01T02:19:56.087 に答える