Fonction testant le type de son argument: type

### 9.4.5 Fonction testant le type de son argument: type

type est une fonction qui a un argument et qui renvoie le type de cet argument par exemple :
double ou DOM_FLOAT, integer ou DOM_INT, complex ou DOM_COMPLEX,
identifier ou DOM_IDENT, vector ou DOM_LIST, func ou DOM_FUNC
expression ou DOM_SYMBOLIC, rational ou DOM_RAT, string ou DOM_STRING.
Il y a 20 types différents qui sont représentés par un entier entre 1 et 20.
type permet de tester une erreur d’entrée.
On tape :

type(3.14)

On obtient :

double

On tape :

type(3.14)+0

On obtient :

1

On tape :

type(3)

On obtient :

integer

On tape :

type(3)+0

On obtient :

2

On tape :

type(3% 5)

On obtient :

15

Remarque : utilisation de type pour les graphes
voir aussi 3
Si le graphe dépend d’une fonction utilisateur, il faut que la fonction soit définie même lorsque le(s) paramètre(s) a (ont) une valeur formelle, ce qui peut se faire en testant le type du paramètre, comme dans l’exemple suivant, f est définie en testant du type du paramètre par :

    f(x):= {
      if (type(x)==identifier) return 'f'(x);
      while(x>0){ x--; }
      return x;
    }:;

Ainsi f(x) renvoie f(x) et f(3.1) renvoie -0.9.
ou bien

    g(x):= {
      if (type(x)!=vector) return 'g'(x);
      if (type(x)==identifier) return 'g'(x);
      while(x[0]>0){x[0]:=x[0]-1; }
      return x;
    }:;

Ainsi g(x) renvoie g(x), g([x,y,z]) renvoie g([x,y,z]) et g([1.1,2,3]) renvoie [-0.9,2,3].
Par exemple si G:=plotfunc(g(x), le test permet d’utiliser le graphe G de g dans des commandes comme translation(1+i,G)...