7.5. Creaci�n de funciones propias

Veamos ahora como crear nuestras propias funciones con todos los recursos que hemos visto de YACAS:

7.5.1. Comentarios

Siempre que programemos, independientemente del lenguaje, es conveniente la utilizaci�n de comentarios. Esto nos facilitar� la depuraci�n y/o ampliaci�n del c�digo. Especialmente si hace mucho tiempo que no lo utilizamos.

Los comentarios en YACAS son como en lenguaje C, se considerar� comentario todo aquello que est� entre /* y */. YACAS tambi�n admite comentarios al estilo C++, es decir ser� comentario todo lo que se encuentre despu�s de // y hasta el final de linea.

Ejemplo 7-12. Ejemplos de comentarios

/* ESTO ES UN COMENTARIO */
/* ESTO TAMBIEN
   LO ES */
// Y ESTO TAMBIEN, PERO AL ESTILO C++

7.5.2. Bloques de c�digo

Podemos crear bloques de c�digo de dos formas:

7.5.3. Localizando funciones

Hay veces que es necesario conocer en que fichero tenemos almacenada una funci�n, eso se hace con FindFunction:

Ejemplo 7-13. Uso de FindFunction

In> FindFunction("Sum");
Out> "sums.rep/code.ys";
In>
	  

7.5.4. Ejemplo de creaci�n de funciones

Vamos a crear una funci�n que dada una lista pida al usuario un n�mero y calcule la suma de todas las componentes de la lista elevadas al n�mero introducido por el usuario.

La funci�n ser�a:

MiFuncion(list):=[
	  /* DECLARAMOS LOCALES LAS FUNCIONES */
	  Local(poten, tmplist, tmpRes, i);
	  /* PEDIMOS EL DATO */
	  Echo("Introduce la potencia: ");
	  poten:=Read();
	  Echo("");
	  /* ELEVAMOS A LA POTENCIA ESPECIFICADA */
	  tmplist:=list^poten;
	  tmpRes:=0;
	  /* SUMAMOS TODOS LOS MIEMBROS DE LA LISTA */
	  For(i:=1,i<=Length(list),i++) tmpRes:=tmpRes+tmplist[i];
	  /* MOSTRAMOS LOS RESULTADOS */
	  Echo({"La suma es", tmpRes});
];

Esta funci�n la almacenaremos en un fichero mifuncion.ys que estar� en nuestro directorio de scripts. Crearemos un fichero mifuncion.ys.def para que YACAS sepa donde se encuentra y evitar que este cargado en memoria. El fichero mifuncion.ys.def:

MiFuncion
}

A continuaci�n tendremos que modificar el fichero .yacasrc de la siguiente manera:

/* DIRECTORIO DE SCRIPTS */
DefaultDirectory("/home/jose/yacascripts/");
/* INDICA LA DEFINICION DE LA FUNCION */
CntDefLoad("yacascripts/funcion.ys");

En nuestro directorio de scripts tendremos que tener los ficheros mifuncion.ys y mifuncion.ys.def.

Al arrancar YACAS ya podremos utilizar la funci�n:

In> MiFuncion({1,2,3,4});
Introduce la potencia:
6;
La suma es 4890
Out> True;
In>