Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > by-pkgid > 2fc07611b08d4a735fd34d5eb60d8e16 > files > 2242

ciao-1.10p8-3mdv2010.0.i586.rpm

<HTML>
<HEAD>
<!-- Created by texi2html 1.56k + clip patches and <A href="http://www.clip.dia.fi.upm.es/Software">lpdoc</A> from ciao.texi on 28 January 2007 -->

<LINK rel="stylesheet" href="ciao.css" type="text/css">
<TITLE>The Ciao Prolog System               - Classical Prolog modes</TITLE>
</HEAD>
<BODY> 
Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_63.html">previous</A>, <A HREF="ciao_65.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>.
<P><HR><P>


<H1><A NAME="SEC285" HREF="ciao_toc.html#TOC285">Classical Prolog modes</A></H1>
<P>
<A NAME="IDX4209"></A>


<P>
<STRONG>Author(s):</STRONG> Manuel Hermenegildo.


<P>
<STRONG>Version:</STRONG> 1.10#7 (2006/4/26, 19:22:13 CEST)


<P>
<STRONG>Version of last change:</STRONG> 0.8#43 (1999/3/6, 18:39:38 CET)


<P>
This file defines a number of very simple "
<A NAME="IDX4210"></A>
modes" which are frequently useful in programs. These correspond to the modes used in classical Prolog texts with some simple addtions. Note that some of these modes use the same symbol as one of the ISO-modes (see section <A HREF="ciao_63.html#SEC282">ISO-Prolog modes</A>) but with subtly different meaning.



<UL>
<LI><A HREF="ciao_64.html#SEC286">Usage and interface (basicmodes)</A>
<LI><A HREF="ciao_64.html#SEC287">Documentation on new modes (basicmodes)</A>
</UL>



<H2><A NAME="SEC286" HREF="ciao_toc.html#TOC286">Usage and interface (<CODE>basicmodes</CODE>)</A></H2>

<div class="cartouche">

<UL>

<LI><STRONG>Library usage:</STRONG>

:- use_package([assertions,basicmodes]).

<LI><STRONG>New operators defined:</STRONG>

<A NAME="IDX4211"></A>
<CODE>^/1</CODE> [25,fy], 
<A NAME="IDX4212"></A>
<CODE>?/1</CODE> [500,fx], 
<A NAME="IDX4213"></A>
<CODE>@/1</CODE> [500,fx].

<LI><STRONG>New modes defined:</STRONG>

<A NAME="IDX4214"></A>
<CODE>+/1</CODE>, 
<A NAME="IDX4215"></A>
<CODE>-/1</CODE>, 
<A NAME="IDX4216"></A>
<CODE>?/1</CODE>, 
<A NAME="IDX4217"></A>
<CODE>@/1</CODE>, 
<A NAME="IDX4218"></A>
<CODE>in/1</CODE>, 
<A NAME="IDX4219"></A>
<CODE>out/1</CODE>, 
<A NAME="IDX4220"></A>
<CODE>go/1</CODE>, 
<A NAME="IDX4221"></A>
<CODE>+/2</CODE>, 
<A NAME="IDX4222"></A>
<CODE>-/2</CODE>, 
<A NAME="IDX4223"></A>
<CODE>?/2</CODE>, 
<A NAME="IDX4224"></A>
<CODE>@/2</CODE>, 
<A NAME="IDX4225"></A>
<CODE>in/2</CODE>, 
<A NAME="IDX4226"></A>
<CODE>out/2</CODE>, 
<A NAME="IDX4227"></A>
<CODE>go/2</CODE>.

</UL>

</div class="cartouche">



<H2><A NAME="SEC287" HREF="ciao_toc.html#TOC287">Documentation on new modes (<CODE>basicmodes</CODE>)</A></H2>
<P>
<A NAME="IDX4228"></A>
<DL>
<DT><span class="define">MODE:</span> <B>+/1:</B>
<DD><A NAME="IDX4229"></A>


<P>
Input value in argument.


<P>
<STRONG>Usage:</STRONG> <CODE>+ A</CODE>

<UL>
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is currently a term which is not a free variable.
 (<CODE>term_typing:nonvar/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4230"></A>
<DL>
<DT><span class="define">MODE:</span> <B>-/1:</B>
<DD><A NAME="IDX4231"></A>


<P>
No input value in argument.


<P>
<STRONG>Usage:</STRONG> <CODE>- A</CODE>

<UL>
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is a free variable.
 (<CODE>term_typing:var/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4232"></A>
<DL>
<DT><span class="define">MODE:</span> <B>?/1:</B>
<DD><A NAME="IDX4233"></A>


<P>
Unspecified argument.


</DL>

<P>
<A NAME="IDX4234"></A>
<DL>
<DT><span class="define">MODE:</span> <B>@/1:</B>
<DD><A NAME="IDX4235"></A>


<P>
No output value in argument.


<P>
<STRONG>Usage:</STRONG> <CODE>@ A</CODE>

<UL>
<LI><EM>The following properties are added globally:</EM>

<CODE>A</CODE> is not further instantiated.
 (<CODE>basic_props:not_further_inst/2</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4236"></A>
<DL>
<DT><span class="define">MODE:</span> <B>in/1:</B>
<DD><A NAME="IDX4237"></A>


<P>
Input argument.


<P>
<STRONG>Usage:</STRONG> <CODE>in(A)</CODE>

<UL>
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
<LI><EM>The following properties are added upon exit:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4238"></A>
<DL>
<DT><span class="define">MODE:</span> <B>out/1:</B>
<DD><A NAME="IDX4239"></A>


<P>
Output argument.


<P>
<STRONG>Usage:</STRONG> <CODE>out(A)</CODE>

<UL>
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is a free variable.
 (<CODE>term_typing:var/1</CODE>)
<LI><EM>The following properties are added upon exit:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4240"></A>
<DL>
<DT><span class="define">MODE:</span> <B>go/1:</B>
<DD><A NAME="IDX4241"></A>


<P>
Ground output (input/output argument).


<P>
<STRONG>Usage:</STRONG> <CODE>go(A)</CODE>

<UL>
<LI><EM>The following properties are added upon exit:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4242"></A>
<DL>
<DT><span class="define">MODE:</span> <B>+/2:</B>
<DD><A NAME="IDX4243"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>A + X</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is currently a term which is not a free variable.
 (<CODE>term_typing:nonvar/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4244"></A>
<DL>
<DT><span class="define">MODE:</span> <B>-/2:</B>
<DD><A NAME="IDX4245"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>A - X</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is a free variable.
 (<CODE>term_typing:var/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4246"></A>
<DL>
<DT><span class="define">MODE:</span> <B>?/2:</B>
<DD><A NAME="IDX4247"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>?(A, X)</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
</UL>

</DL>

<P>
<A NAME="IDX4248"></A>
<DL>
<DT><span class="define">MODE:</span> <B>@/2:</B>
<DD><A NAME="IDX4249"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>@(A, X)</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
<LI><EM>The following properties are added globally:</EM>

<CODE>A</CODE> is not further instantiated.
 (<CODE>basic_props:not_further_inst/2</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4250"></A>
<DL>
<DT><span class="define">MODE:</span> <B>in/2:</B>
<DD><A NAME="IDX4251"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>in(A, X)</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
<LI><EM>The following properties are added upon exit:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4252"></A>
<DL>
<DT><span class="define">MODE:</span> <B>out/2:</B>
<DD><A NAME="IDX4253"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>out(A, X)</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
<LI><EM>The following properties are added at call time:</EM>

<CODE>A</CODE> is a free variable.
 (<CODE>term_typing:var/1</CODE>)
<LI><EM>The following properties are added upon exit:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
</UL>

</DL>

<P>
<A NAME="IDX4254"></A>
<DL>
<DT><span class="define">MODE:</span> <B>go/2:</B>
<DD><A NAME="IDX4255"></A>


<P>
<STRONG>Usage:</STRONG> <CODE>go(A, X)</CODE>

<UL>
<LI><EM>Call and exit are <EM>compatible</EM> with:</EM>

<CODE>undefined:call(X,A)</CODE>
 (undefined property)
<LI><EM>The following properties are added upon exit:</EM>

<CODE>A</CODE> is currently ground (it contains no variables).
 (<CODE>term_typing:ground/1</CODE>)
</UL>

</DL>

<P><HR><P>
Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_63.html">previous</A>, <A HREF="ciao_65.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>.
</BODY>
</HTML>