functions
procedimentos Scilab e objetos Scilab
Descrição
Funções são procedimentos Scilab ("macro", "função" e "procedure" possuem o mesmo significado).
Definição de Função
Geralmente, elas são definidas em arquivos com um edito e carregadas no Scilab através da função exec ou através de uma biblioteca (ver lib ou genlib). Mas também podem ser definidas on-line (ver deff ou function. Uma função é definida por dois componentes:
uma parte "definição de sintaxe" como segue:
function [y1, ..., yn]=foo(x1, ...,xm) function [y1, ..., yn, varargout]=foo(x1, ...,xm,varargin)
uma seqüência de instruções Scilab.
A linha de "definição de sintaxe" fornece a sintaxe de chamamento
"completa" para esta função. As variáveis yi
são
variáveis de saída calculadas em função das variáveis de entrada
xi
e variáveis existentes no Scilab quando a função é
executada.
Chamada de Função
A sintaxe de chamamento de função usual é
[y1,...,yn]=foo(x1,...,xm)
. Listas de argumentos de entrada ou saída mais curtos que as da definição podem ser usadas. Em tais casos, apenas as primeiras variáveis da esquerda para direita são usadas ou definidas.A função argn pode ser utilizada para se o número total real de argumentos de chamada.
É possível definir funções com número máximo indeterminado de argumentos de entrada ou saída. Isto pode ser feito utilizando-se as palavras-chave varargin e varargout keywords. Veja os links para detalhes.
Também é possível utilizar "argumentos nomeados" para especificar argumentos de entrada: suponha que a função
fun1
seja definida comofunction y1=fun1(x1, x2, x3)
, então pode ser chamada com uma sintaxe comoy = fun1(x1=33, x3=[1 2 3])
. Dentro defun1
x2
será indefinida.Também pode ser chamada com sintaxe como
y = fun1(x1=33, y='foo')
. Em tal caso, a variávely
estará disponível no contexto da funçãofun1
.Note que o número máximo de argumentos deve ser menor que ou igual ao número de argumentos de entrada fornais utilizados na parte de sintaxe da função.É possível buscar por variáveis definidas através da função exists.
Quando uma função não possui argumento de lado esquerdo e é chamada apenas com argumentos strings, a sintaxe de chamamento pode ser simplificada:
fun('a','toto','a string')
is equivalent to:
fun a toto 'a string'
Miscelânea
Funções Scilab são objetos (com números de tipo 13 ou 11). Elas podem ser manipuladas (construídas, salvas, carregadas, passadas como argumentos,...) como outros tipos de variáveis.
Coleções de funções podem ser reunidas em bibliotecas. Funções que
começam pelo sinal %
(ex: %foo
) são
geralmente utilizadas para operações de sobrecarga (ver overloading) ou são funções para novos tipos
de dados.
Exemplos
Ver Também
- function — abre definição de função
- deff — in-line definition of a (anonymous) function in Scilab language
- exec — script file execution
- lib — loads a library of Scilab functions and variables, and sets its name
- getd — retorna todas as funções definidas em um diretório
- genlib — builds a library from a set of *.sci files defining functions in a given directory
- exists — verifica existência de variáveis
- varargin — variável do número de argumentos de saída em uma lista de argumentos de entrada
- varargout — variável do número de argumentos de saída em uma lista de argumentos de saída
Report an issue | ||
<< boolean | types | hypermatrices >> |