2012-03-23 23 views
1

私は定義しました! (階乗)関数を作成し、それを算術関数と演算子として登録して、Aが6です!Prolog:演算子を宣言する

今私は定義したいと思います! (奇数の階乗)ですが、同じように - 節を書くこと、arithmetic_functionとoperatorを登録すること、Aを呼び出すことは7です!! - 結果は SyntaxError:演算子が必要です

可能であれば、どうすれば登録できますか?演算子?

はい、私は実現します。通常はカットです。

+0

述語を投稿できますか? –

+0

私はそれを定義することは良い考えではないと思います!演算子(!!演算子も) – gusbro

答えて

4

!いわゆるのソロ文字であるため、2つの行を並べることはできません。それがなかった場合は、例えば書くことができませんでした:

c :- !. 

代わりに記述する必要があります:

c :- ! . 

ので "!"。それ以外の場合は単一のトークンとして解釈されます。

また、両方のバージョンが無効な構文です(はい、SWIはまだそれを受け入れますが、例えばGNU Prologは受け付けません)。

l

オペランドが括弧で囲まれている必要があるため、次のように記述する必要があります。 !の代わりに、例えば "f"と "ff"を使用するか、ユースケースのためにUnicode文字をあてはめてください。