2007-06-12 11:39:47 +01:00
<?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" >
< head >
< meta http-equiv = "content-type" content = "application/xml+xhtml; charset=utf-8" / >
< title > Logtalk control construct: :/1< / title >
< link rel = "stylesheet" href = "../../screen.css" type = "text/css" media = "screen" / >
< link rel = "stylesheet" href = "../../print.css" type = "text/css" media = "print" / >
< / head >
< body >
< div class = "top-left" > Logtalk reference manual< / div >
< div class = "top-right" > Control construct: :/1< / div >
< div class = "bottom-left" > < span class = "page" / > < / div >
< div class = "bottom-right" > < span class = "page" / > < / div >
< div class = "navtop" > < a href = "../../index.html" > contents< / a > > < a href = "../index.html" > reference manual< / a > > < a href = "../index.html#constructs" > control constructs< / a > < / div >
< h2 id = "control_direct1" class = "codenp" > :/1< / h2 >
< h4 > Description< / h4 >
< pre > :Goal< / pre >
< p >
2007-11-06 01:50:09 +00:00
Calls an imported category predicate without using the message sending mechanisms. The category predicate is called with the same execution context (< em > sender< / em > , < em > this< / em > , and < em > self< / em > ) as the predicate whose body contains the call. The lookup for both the predicate declaration and the predicate definition begins in < em > this< / em > instead of < em > self< / em > . Furthermore, the lookup of the predicate definition is restricted to the imported categories. As a consequence, any redeclaration or redefinition of the predicate in a descendant of the object containing the call will be ignored.
2007-06-12 11:39:47 +01:00
< / p >
< h4 > Template and modes< / h4 >
< pre > :+callable< / pre >
< h4 > Errors< / h4 >
< dl >
< dt > Goal is a variable:< / dt >
< dd > < code > instantiation_error< / code > < / dd >
< dt > Goal is neither a variable nor a callable term:< / dt >
< dd > < code > type_error(callable, Goal)< / code > < / dd >
< dt > The object containing the call does not import any category:< / dt >
< dd > < code > existence_error(procedure, Goal)< / code > < / dd >
< / dl >
< h4 > Examples< / h4 >
< pre > :- object(bounded_point,
imports(bounded_coordinate),
instantiates(class),
specializes(point)).
move(X, Y) :-
:check_bounds(x, X), % defined in the "bounded_coordinate" category
:check_bounds(y, Y),
^^move(X, Y).< / pre >
< div class = "footer" >
< div class = "copyright" >
< span > Copyright © < a href = "mailto:pmoura@logtalk.org" > Paulo Moura< / a > — < a href = "http://logtalk.org" > Logtalk.org< / a > < / span > < br / >
2007-11-06 01:50:09 +00:00
< span > Last updated on: August 27, 2007< / span >
2007-06-12 11:39:47 +01:00
< / div >
< div class = "navbottom" >
< span > < a href = "../index.html#constructs" > previous< / a > | < a href = "../../glossary.html" > glossary< / a > | < a href = "../index.html#constructs" > next< / a > < / span > < br / >
< span > < a href = "http://validator.w3.org/check/referer" > XHTML< / a > + < a href = "http://jigsaw.w3.org/css-validator/check/referer" > CSS< / a > < / span >
< / div >
< / div >
< / body >
< / html >