type and subtype

Messages in english

Modérateur : xcasadmin

compsystems
Messages : 554
Inscription : sam. févr. 04, 2017 11:34 pm
Localisation : Colombia
Contact :

type and subtype

Message par compsystems » ven. avr. 30, 2021 4:43 pm

Hello

type(obj) almost always returns a data type as identifier, except in type(3%5) // returns > 15
type(%%%{3,[2,1]%%%}) // returns > 5
type(obj)+0 returns the numeric value of the data type

subtype(obj) almost returns the numeric value of the subtype for list data, except in subtype(3.14159265358979323846264338328); // returns >DOMLONGFLOAT

to unify the outputs between type(obj) and subtype(obj) please can you make subtype also return an identifier, I like things to be very consistent =] with +0 returns un numeric value

Code : Tout sélectionner

purge(a,b);
type(5.0); // returns > real (DOM_) 
type(5)+0; // returns > 1

type(5); // returns > integer (DOM_INT) 
type(5)+0; // returns > 2

type(3+4*i); // returns > complex (DOM_COMPLEX)
type(3+4*i)+0; // returns > 4

type( symb2poly(3x^2*y,[x,y]) ) // returns > 5 (DOM_?)

type(abc); // returns > identifier (DOM_IDENT)
type(abc)+0 ; // returns > 6

type([a,a,b]); // returns > vector (DOM_LIST)
type([a,a,b])+0; // returns > 7

type(a+b); // returns > expression (DOM_SYMBOLIC)
type(a+b)+0; // returns > 8

type(3/4); // returns > rational (DOM_RAT)
type(3/4)+0; // returns > 10

type("3/4"); // returns > string (DOM_STRING)
type("3/4")+0// returns > 12

type(f(x):=x+1); // returns > func (DOM_FUNC)
type(f(x):=x+1)+0; // returns > 13 

type(3%5); // returns > 15 (DOM_?)
type(3%5)+0; // returns > 15 

map_17:= table("John" : 938477566,"Jack" : 938377264,"Jill" : 947662781);
type(map_17); // returns >  (DOM_MAP)
type(map_17) +0; // returns > 17 

set1 := set[a,a,b]; 
type(set1); // returns > DOM_LIST

type(set[a,a,b]); // returns > DOM_LIST
type(poly1[0,0,3,-1]); // returns > DOM_LIST
type(a,a,b); // returns > vector (DOM_LIST)

type( set[a,a,b] ); type(poly1[0,0,3,-1]); type(a,a,b); // returns > vector, vector,vector

subtype(set[a,a,b]); // returns > 2
subtype(poly1[1, -6, 11, -6]); // returns > 10

subtype(seq[a,a,b]); // returns > 1

subtype(3.14159265358979323846264338328); // DOMLONGFLOAT

subtype(set[a,a,b]); // returns > 2
subtype(set[a,a,b])+0; // returns > 2

subtype(poly1[0,0,3,-1]); // returns > poly1
subtype(poly1[0,0,3,-1])+0; // returns > 1

subtype(seq[a,a,b]); // returns > seq
subtype(seq[a,a,b])+0; // returns > 10

a code program is more self-commented when working with words instead of numbers
[code]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; 
}:;

Répondre