Capítulo 4. Tipos de datos en YACAS

YACAS trata todo como objetos y tiene dos tipos básicos de objetos:

4.1. Tratamiento de los datos en YACAS

Internamente YACAS almacena los átomos como cadenas de texto y los compounds como listas.

Podemos utilizar la función Type para ver que tipo de objeto estamos tratando:

Ejemplo 4-1. Uso de Type

In> Type("Hola");
Out> "";
In> Type(2+(3*5));
Out> "";
In> Type(a*(b+c));
Out> "*";
In> Sin();
Out> Sin;
In> Type({1,2,3});
Out> "List";
In>
	

La interpretación de los ejemplos anteriores es:

  1. "Hola" es una cadena de caracteres, luego un átomo y en estos casos se devuelve la cadena vacía "".

  2. 2+(3*5) es una expresión y por lo tanto un compound. Sin embargo el valor devuelto es la cadena vacía "", es un átomo!!.

    La explicación es sencilla, YACAS antes de ejecutar la función Type evalua su argumento luego en realidad lo que ejecuta YACAS es:

    In> Type(30);
    Out> "";
    In>
    	  

    y como 30 es un átomo se obtiene "".

  3. a*(b+c) es una expresión y por lo tanto un compound. YACAS devuelve *. En los compounds se devuelve el operador de más alto nivel.

    No confundir con el operador que primero aparece:

    In> Type((a*b)+(c/d));
    Out> "+";
    In>
    	  
  4. Sin() es una función y por lo tanto un compound. YACAS devuelve el nombre de la función, operador de más alto nivel.

  5. {1,2,3} es una lista y por lo tanto un compound. YACAS devuelve List indicando que se trata de una lista.