Prolog-operator"_:_" - 意思是什么?

CyK*_*Kon 5 prolog operator-keyword

我不明白以下Prolog片段?什么":_:"意思?":="和之间有什么区别"="

game_to_problematic_points(Game,Pid,Hid) :-
  Point := Game/point,
  Pid := Point@id,
  Point = point:_:Hits.
  append(_, [Hit1,_|_], Hits),
  hit_out(Hit1),
  Hid := Hit1@id.
hit_out(Hit) :-
  X := Hit@x,
  Y := Hit@y,
  ( X > 23.77 / 2
  ; X < -23.77 / 2
  ; Y > 10.97 / 2
  ; Y < -10.97 / 2).
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Pau*_*ura 5

这似乎是XPCE代码.XPCE是本机SWI-Prolog面向对象的GUI库.您可以在以下位置找到PDF格式的手册:

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

:=/2运算符用于分配(详见引导),而=/2是标准的Prolog统一操作者.

目标Point = point:_:Hits只是将变量Point与复合项统一起来point:_:Hits.如果您以规范形式编写此术语可能很清楚:

?- write_canonical(point:_:Hits).
:(point,:(_,_))
true.
Run Code Online (Sandbox Code Playgroud)

请注意,该术语使用标准:/2模块运算符两次.