1

SWI-Prologを使ってPrologを学んでいます。ファイル内の私の練習コードは次のfact.plとおりです。

factorial(N,F) :- N is 0, F is 1;
              N > 0, M is N - 1, factorial(M,G), F is N*G.

を使用してこのファイルを読み込もうとした[fact.pl]ときに、インタープリターから次のエラーが表示されました。

?- [fact.pl].
ERROR: Syntax error: Operator expected
ERROR: [fact
ERROR: ** here **
ERROR: .pl] .

これがどのように起こるかはわかりませんが、私が行ったことは標準のプログラム読み込みコマンドであることは間違いありません。

誰でもこれを見たことがあります、助けてください、ありがとう。

4

3 に答える 3

1

または動作?- [fact].する?- ['fact.pl'].はずです

于 2012-10-04T13:23:48.403 に答える
-1

あなたのプログラムをコンパイルすると、次の答えが得られました。

階乗(5,F)。F = 120; 間違い。

これは、プログラムが正しく動作することを意味します。

factorial(N,F) :- N is 0, F is 1,**!**;N > 0, M is N - 1, factorial(M,G), F is N*G.

切り取り演算子 (!) を含めます。これにより、出力の false 部分を回避できます。

于 2012-12-17T10:46:39.127 に答える