<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 - ISO-Prolog modes</TITLE> </HEAD> <BODY> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_62.html">previous</A>, <A HREF="ciao_64.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="SEC282" HREF="ciao_toc.html#TOC282">ISO-Prolog modes</A></H1> <P> <A NAME="IDX4175"></A> <P> <STRONG>Author(s):</STRONG> Daniel Cabeza, Manuel Hermenegildo. <P> <STRONG>Version:</STRONG> 1.10#7 (2006/4/26, 19:22:13 CEST) <P> <STRONG>Version of last change:</STRONG> 1.9#292 (2004/2/16, 14:52:52 CET) <P> This file defines the " <A NAME="IDX4176"></A> modes" used in the documentation of the ISO-Prolog standard. See also section <A HREF="ciao_64.html#SEC285">Classical Prolog modes</A> for an alternative set of modes. <UL> <LI><A HREF="ciao_63.html#SEC283">Usage and interface (isomodes)</A> <LI><A HREF="ciao_63.html#SEC284">Documentation on new modes (isomodes)</A> </UL> <H2><A NAME="SEC283" HREF="ciao_toc.html#TOC283">Usage and interface (<CODE>isomodes</CODE>)</A></H2> <div class="cartouche"> <UL> <LI><STRONG>Library usage:</STRONG> <CODE>:- use_package([assertions,isomodes]).</CODE> <LI><STRONG>New operators defined:</STRONG> <A NAME="IDX4177"></A> <CODE>?/1</CODE> [200,fy], <A NAME="IDX4178"></A> <CODE>@/1</CODE> [200,fy]. <LI><STRONG>New modes defined:</STRONG> <A NAME="IDX4179"></A> <CODE>+/1</CODE>, <A NAME="IDX4180"></A> <CODE>@/1</CODE>, <A NAME="IDX4181"></A> <CODE>-/1</CODE>, <A NAME="IDX4182"></A> <CODE>?/1</CODE>, <A NAME="IDX4183"></A> <CODE>*/1</CODE>, <A NAME="IDX4184"></A> <CODE>+/2</CODE>, <A NAME="IDX4185"></A> <CODE>@/2</CODE>, <A NAME="IDX4186"></A> <CODE>-/2</CODE>, <A NAME="IDX4187"></A> <CODE>?/2</CODE>, <A NAME="IDX4188"></A> <CODE>*/2</CODE>. </UL> </div class="cartouche"> <H2><A NAME="SEC284" HREF="ciao_toc.html#TOC284">Documentation on new modes (<CODE>isomodes</CODE>)</A></H2> <P> <A NAME="IDX4189"></A> <DL> <DT><span class="define">MODE:</span> <B>+/1:</B> <DD><A NAME="IDX4190"></A> <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="IDX4191"></A> <DL> <DT><span class="define">MODE:</span> <B>@/1:</B> <DD><A NAME="IDX4192"></A> <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="IDX4193"></A> <DL> <DT><span class="define">MODE:</span> <B>-/1:</B> <DD><A NAME="IDX4194"></A> <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="IDX4195"></A> <DL> <DT><span class="define">MODE:</span> <B>?/1:</B> <DD><A NAME="IDX4196"></A> <P> Unspecified argument. </DL> <P> <A NAME="IDX4197"></A> <DL> <DT><span class="define">MODE:</span> <B>*/1:</B> <DD><A NAME="IDX4198"></A> <P> Unspecified argument. </DL> <P> <A NAME="IDX4199"></A> <DL> <DT><span class="define">MODE:</span> <B>+/2:</B> <DD><A NAME="IDX4200"></A> <P> <STRONG>Usage:</STRONG> <CODE>A + X</CODE> <UL> <LI><EM>The following properties are added at call time:</EM> <CODE>undefined:call(X,A)</CODE> (undefined property) </UL> </DL> <P> <A NAME="IDX4201"></A> <DL> <DT><span class="define">MODE:</span> <B>@/2:</B> <DD><A NAME="IDX4202"></A> <P> <STRONG>Usage:</STRONG> <CODE>@(A, X)</CODE> <UL> <LI><EM>The following properties are added at call time:</EM> <CODE>undefined:call(X,A)</CODE> (undefined property) <LI><EM>The following properties are added upon exit:</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="IDX4203"></A> <DL> <DT><span class="define">MODE:</span> <B>-/2:</B> <DD><A NAME="IDX4204"></A> <P> <STRONG>Usage:</STRONG> <CODE>A - X</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>undefined:call(X,A)</CODE> (undefined property) </UL> </DL> <P> <A NAME="IDX4205"></A> <DL> <DT><span class="define">MODE:</span> <B>?/2:</B> <DD><A NAME="IDX4206"></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 upon exit:</EM> <CODE>undefined:call(X,A)</CODE> (undefined property) </UL> </DL> <P> <A NAME="IDX4207"></A> <DL> <DT><span class="define">MODE:</span> <B>*/2:</B> <DD><A NAME="IDX4208"></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><HR><P> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_62.html">previous</A>, <A HREF="ciao_64.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. </BODY> </HTML>