2016-07-17 9 views
5

私は次のPrologスニペットを理解していませんか? ":_:"は何を意味していますか? ":=""="の違いは何ですか?プロローグ演算子 "_:_" - 意味は?

game_to_problematic_points(Game,Pid,Hid) :- 
    Point := Game/point, 
    Pid := [email protected], 
    Point = point:_:Hits. 
    append(_, [Hit1,_|_], Hits), 
    hit_out(Hit1), 
    Hid := [email protected] 
hit_out(Hit) :- 
    X := [email protected], 
    Y := [email protected], 
    (X > 23.77/2 
    ; X < -23.77/2 
    ; Y > 10.97/2 
    ; Y < -10.97/2). 

感謝:)

+0

Prologシステムはどれですか? –

+0

@PauloMoura SWI-Prolog – CyKon

答えて

5

これはXPCEコードのようです。 XPCEは、SWI-PrologのネイティブなGUIライブラリです。あなたがでPDF形式でのマニュアルを見つけることができます。

http://www.swi-prolog.org/download/xpce/doc/userguide/userguide.pdf

=/2は、標準的なPrologの統一事業者である一方、:=/2演算子は(詳細については、ガイドを参照してください)割り当てに使用されます。

目標Point = point:_:Hitsは、変数Pointと化合物用語point:_:Hitsの単なる統一です。あなたが正規の形式で、この言葉を書くかどうかは明確である可能性があります

?- write_canonical(point:_:Hits). 
:(point,:(_,_)) 
true. 

(注)この用語は二回、標準:/2モジュール演算子を使用していること。

+0

ありがとうたくさん:) – CyKon

+0

本当にいい構文です - ありがとう! – CapelliC

関連する問題