Prolog-operator "_:_" - 意思?
Prolog-operator "_:_" - meaning?
我不明白以下序言片段?
":_:"
是什么意思? ":="
和 "="
有什么区别?
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).
谢谢 :)
这似乎是 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
模块运算符两次。
我不明白以下序言片段?
":_:"
是什么意思? ":="
和 "="
有什么区别?
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).
谢谢 :)
这似乎是 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
模块运算符两次。