<?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:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="library" xml:lang="pt">
    <refnamediv>
        <refname>library</refname>
        <refpurpose>descrição de tipo de dado bibilioteca</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Seqüência de Chamamento</title>

    </refsynopsisdiv>
    <refsection>
        <title>Descrição</title>
        <para>Uma bibilioteca é um tipo de dado com número 14. Contém um nome de
            endereço e um conjunto de nomes. Permite o carregamento automático de
            variáveis utilizando o seguinte algoritmo:
        </para>
        <para>Suponha o usuário Scilab referencie a variável de nome
            <literal>foo</literal>. O Scilab procura primeiro se
            <literal>foo</literal> é o nome de uma primitiva, ou de uma variável já
            definida. Se naõ for, procura por <literal>foo</literal> seqüencialmente
            (a mais nova) em toda a biblioteca definida .
        </para>
        <para>
            Suponha que <literal>foo</literal> pertence ao conjunto de nomes da
            biblioteca <literal>xlib</literal>. Então o Scilab tenta carregar o
            arquivo &lt;xlib-path-name&gt;/foo.bin. &lt;xlib-path-name&gt;/foo.bin
            deve ter sido criado utilizando-se a função
            <literal>save</literal>.
        </para>
        <para>Bibliotecas geralmente são utilizadas para coleções de funções, mas
            também podem ser utilizadas para coleções de variáveis Scilab.
        </para>
        <para>Se uma função estiver definida em mais de uma biblioteca, o
            algoritmo de busca padrão carrega aquela contida na mais nova. É possível
            forçar o uso de uma biblioteca específica utilizando a notação de
            ponto:
        </para>
        <para>
            <literal>xlib.foo</literal> carrega a variável
            <literal>foo</literal> contida em <literal>xlib</literal>, if
            <literal>foo</literal> for uma função e <literal>xlib.foo(args)</literal>
            executa as funções.
        </para>
    </refsection>
    <refsection>
        <title>Exemplos</title>
        <programlisting role="example"><![CDATA[
// elemlib é uma biblioteca predefinida
elementary_functionlib //exibindo o conteúdo da biblioteca
A=rand(3,3);
cosm(A) //carregando cosm e executando-o
whos -name cosm // agora, cosm é uma variável
elementary_functionlib.sinm //carregando sinm da biblioteca
elementary_functionlib.cosm(A) //carregando novamente cosm e executando-o
 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>Ver Também</title>
        <simplelist type="inline">
            <member>
                <link linkend="lib">lib</link>
            </member>
            <member>
                <link linkend="string">string</link>
            </member>
            <member>
                <link linkend="load">load</link>
            </member>
            <member>
                <link linkend="save">save</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
