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>