私はSOの質問を読みましたが、スラッシュ(/)はプロローグで何をしますか?Prolog(SWI-Prolog)の述語「simple / 1」の意味は何ですか?しかし、これらのリンクは私を助けていないようです。
私はPrologのいくつかの初心者向けチュートリアルを行っていました。私のようなフレーズSolve/4
やGo/1
混乱したフレーズ。そのスラッシュと数字はどういう意味ですか?
私はSOの質問を読みましたが、スラッシュ(/)はプロローグで何をしますか?Prolog(SWI-Prolog)の述語「simple / 1」の意味は何ですか?しかし、これらのリンクは私を助けていないようです。
私はPrologのいくつかの初心者向けチュートリアルを行っていました。私のようなフレーズSolve/4
やGo/1
混乱したフレーズ。そのスラッシュと数字はどういう意味ですか?
これは、関数がそのシグネチャで期待する引数の数です。中置演算子には注意してください。中置演算子は、引数の間に配置することで呼び出される場合でも、複数の引数を受け入れることができます。つまり、通常の加算のようなものを+
二項演算子と考えることができます。つまりA+B
、実際にはと同じです。+(A,B)
つまり、で定義+
し+/2
ます。
「Prolog:The Standard:ReferenceManual」の8ページから引用します(「prolog述語インジケーター」をグーグルで検索したときの2 ^エントリ)。
述語インジケーター...これは、Name/Arityという形式の基本用語です。
ISO組み込みファンクター/3はそのようなデータにアクセスします
?- functor(append(a,b,c),Name,Arity).
Name = append,
Arity = 3.
EMSとChacが説明したように、この数は引数の数を示します。ドキュメントにこの番号が記載されている理由は、同じ名前で異なるアリティ(引数の数)を持つ述語が異なる述語であるためです。
したがって、述語:
my_predicate/3
述語は次のものとは異なります。
my_predicate/4
番号は、それらがどれについて話しているかを明確に示すために含まれています。