# function

abre definição de função

# endfunction

encerra definição de função

## Descrição

    function <lhs_arguments>=<function_name><rhs_arguments>
    <statements>
    endfunction

Onde

<function_name>

  é o nome da função

<rhs_arguments>

  é a lista de argumentos de entrada. Pode ser:

  - uma seqüência separada por vírgula de nomes de variáveis encerrada por parênteses, como `(x1,...,xm)`. O último nome de variável pode ser a palavra-chave `varargin` (ver varargin)

  - a seqüência `()` ou nada, se a função não possui argumentos de entrada.

<lhs_arguments>

  é a lista de argumentos de saída. Pode ser:

  - uma seqüência separada por vírgula de nomes de variáveis encerrada por colchetes, como `[y1,...,yn]`. O último nome de variável pode ser a palavra-chave `varargout` (ver varargout)

  - a seqüência `[]` ,se a função não possui argumentos de saída. neste caso, a sintaxe também, pode ser: `function <function_name><rhs_arguments>`

<statements>

  conjunto de instruções Scilab (declarações). Esta sintaxe pode ser usada para definir funções (ver functions) inline ou em arquivo script (ver exec). Para compatibilidade com versões Scilab antigas, as funções podem ser definidas em um arquivo script contendo apenas definições de funções podem ser "carregadas" no Scilab através da função `exec`.

A seqüência `function <lhs_arguments>=<function_name><rhs_arguments>` não pode ser separada em várias linhas. Esta seqüência pode ser seguida por declarações na mesma linha, se uma vírgula ou ponto-e-vírgula for adicionado ao seu fim.

Definições de funções podem ser aninhadas.

## Exemplos

    //definição inline (ver functions)
    function [x,y]=myfct(a,b)
    x=a+b
    y=a-b
    endfunction

    [x,y]=myfct(3,2)

    //uma definição de função de uma linha
    function y=sq(x),y=x^2,endfunction

    sq(3)

    //definição de função aninhada
    function y=foo(x)
    a=sin(x)
    function y=sq(x), y=x^2,endfunction
    y=sq(a)+1
    endfunction

    foo(%pi/3)

    // definição em um arquivo script (ver exec)
    exec SCI/modules/elementary_functions/macros/asinh.sci;

## Ver Também

- functions
- exec