私は定義しました!(階乗)関数とそれを算術関数と演算子として登録したので、実行できます:Aは6です!。
今、私は定義したいと思います!! (奇数の階乗)、しかし同じ方法-節を書き、arithmetic_functionと演算子を登録し、Aを呼び出すのは7です!! -結果はSyntaxErrorになります:演算子が必要です
可能であれば、どのように登録すればよいですか。オペレーター?
はい、わかりました!通常はカットです。
私は定義しました!(階乗)関数とそれを算術関数と演算子として登録したので、実行できます:Aは6です!。
今、私は定義したいと思います!! (奇数の階乗)、しかし同じ方法-節を書き、arithmetic_functionと演算子を登録し、Aを呼び出すのは7です!! -結果はSyntaxErrorになります:演算子が必要です
可能であれば、どのように登録すればよいですか。オペレーター?
はい、わかりました!通常はカットです。
! はいわゆるソロキャラなので、2人連続で持つことはできません。そうでない場合、たとえば次のように書くことはできません。
c :- !.
代わりに次のように書く必要があります。
c :- ! .
なぜなら "!。" それ以外の場合は、単一のトークンとして解釈されます。
また、させていただくと!どちらのバージョンも無効な構文です (はい、SWI は引き続きそれを受け入れますが、たとえば GNU Prolog は受け入れません)。あなたは書く必要があります:
c :- (!).
オペランドである演算子は括弧で囲む必要があるためです。! の代わりに、たとえば "f" や "ff" を使用するか、ユース ケースに合わせて Unicode 文字を使用します。