Prolog-operator“_:_” - 意思是什么?

时间:2016-07-17 13:43:19

标签: 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).

谢谢:)

1 个答案:

答案 0 :(得分: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.

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