Stéphane,

I think, from the user's perspective, that the type names appearing in the variable browser (in the Type column) should be strictly the same as reported by the function typeof. Otherwise it can and will cause confusion and the sensation of lack of consistency.
So do I. But other users do not agree with that, that's why I am trying to find a sensible compromise...

Users who don't think that each thing should bear a single name should provide a good rationale.

The rationale for my proposal is that most users are not computer science experts and can be easily confused by the reach of the word "type". If the variable browser gives a contradictory message, such as calling "double" what typeof calls "constant", they will probably be at a loss.

Finally, I don't consider it recommendable that the same word be used both for a /format /and a /type name/, such as if "constant" were replaced by "double".
What do you mean by "format" ?

I mean the way basic data are stored, such as the IEEE Std 754 specification, so double (double precision) is a format with 1 sign bit, 11 binary exponent bits and 52 fraction bits.

Type involves other information appart from the data themselves, contained in a heaader. According to

https://wiki.scilab.org/Memory%20representation%20of%20variables

"constant" requires a numeric type integer, two integers representing rows and columns, an integer representing whether it is real or complex, and finally the data in double precision format.

I tend to think the answer is no, since they have very different storage representations, cover different sets of numbers and even operations behave differently. If so, the type should be called integer8, integer16 and so on (so the type would be integer8 and the basic format would be int16 --no ambiguity). If, on the contrary, they are the same, then the only type name should be "integer" and the basic format should be informed in a different column.

That was my attempt, by using parenthesis.


This could be prevented if it were acknowledged that int16 and 1nt32, for instance, are actually different types as they have different memory representations, they represent different number sets, and operators on them have different reults:

--> int16(32000)*2
 ans  =

 -1536
--> int32(32000)*2
 ans  =

  64000

typeof acknowledges it, but type doesn't, yielding 8 for both types.

Regards,

Federico Miyara


_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to