<?xml version="1.0" encoding="UTF-8"?>

<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) ????-2008 - INRIA
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->

<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="ja" xml:id="macro">

    <refnamediv>

        <refname>macro</refname>

        <refpurpose>Scilabプロシージャおよび Scilabオブジェクト</refpurpose>

    </refnamediv>

    <refsection>

        <title>説明</title>

        <para>

            マクロはScilabプロシージャ("macro", "function" および "procedure"

            は同じ意味です)です.

            通常,これらはエディタによりファイルの中で定義され,

            <function>exec</function>または

            ライブラリによりScilabにロードされます.

        </para>

        <para>

            マクロをオンラインで定義することも可能です(<link linkend="deff">deff</link>参照).

            マクロを含むファイルは以下のように開始する必要があります:

        </para>

        <programlisting role='no-scilab-exec'><![CDATA[
function [y1,...,yn]=foo(x1,...,xm)
 ]]></programlisting>

        <para>

            <literal>yi</literal> は,

            入力変数およびマクロが実行される時点でScilabの中に存在する

            変数の関数として計算される出力変数です.

            マクロはより高速に実行するためにコンパイルすることが可能です.

            複数のマクロをライブラリに集約することができます.

            <literal>%</literal>記号で始まり(例: <literal>%foo</literal>),

            その引数がリストであるマクロは,

            特定の処理を実行する際に使用されます:

            例えば, <code>z=%rmr(x,y)</code> は

            <varname>x</varname> および <varname>z</varname>が

            有理数の場合に<code>z=x*y</code>と等価です.

            (すなわち, 多項式<varname>n</varname> および

            <varname>d</varname> を指定した <code>x=list('r',n,d,[])</code>)

        </para>

    </refsection>

    <refsection role="see also">

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="deff">deff</link>

            </member>

            <member>

                <link linkend="exec">exec</link>

            </member>

            <member>

                <link linkend="lib">lib</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

