summaryrefslogtreecommitdiff
path: root/modules/functions/help/en_US/macro.xml
blob: 9ea2564649049df56e2e4108e52f64727e8ceba7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) ????-2008 - INRIA
 *
 * This file must be used under the terms of the CeCILL.
 * This source file is licensed as described in the file COPYING, which
 * you should have received as part of this distribution.  The terms
 * are also available at
 * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="macro">
    <refnamediv>
        <refname>macro</refname>
        <refpurpose>Scilab procedure and Scilab object</refpurpose>
    </refnamediv>
    <refsection>
        <title>Description</title>
        <para>
            Macros are Scilab procedures ("macro", "function" and "procedure"
            have the save meaning). Usually, they are defined
            in files with an editor and loaded into Scilab by <function>exec</function> or through
            a library.
        </para>
        <para>
            They can also be defined on-line (see <link linkend="deff">deff</link>).
            A file which contains a macro must begin as follows:
        </para>
        <programlisting role='no-scilab-exec'><![CDATA[
function [y1,...,yn]=foo(x1,...,xm)
 ]]></programlisting>
        <para>
            The <literal>yi</literal> are output variables calculated as functions of
            input variables and variables existing in Scilab
            when the macro is executed.
            A macro can be compiled for faster execution. Collections
            of macros can be collected in libraries.
            Macros which begin with <literal>%</literal> sign (e.g. <literal>%foo</literal>) and whose
            arguments are lists are used to perform specific
            operations: for example, <code>z=%rmr(x,y)</code> is equivalent
            to <code>z=x*y</code> when <varname>x</varname> and <varname>z</varname> are rationals
            (i.e. <code>x=list('r',n,d,[])</code> with <varname>n</varname> and <varname>d</varname> polynomials).
        </para>
    </refsection>
    <refsection role="see also">
        <title>See Also</title>
        <simplelist type="inline">
            <member>
                <link linkend="deff">deff</link>
            </member>
            <member>
                <link linkend="exec">exec</link>
            </member>
            <member>
                <link linkend="comp">comp</link>
            </member>
            <member>
                <link linkend="lib">lib</link>
            </member>
        </simplelist>
    </refsection>
</refentry>