HP Prime - local variables retain their initial type



Post: #3

Local variables retain the type that is first assigned. For example:

EXPORT t2()
BEGIN
LOCAL aa;
aa := [1,2,3];
print(aa);
aa := 3;
print(aa);
END;
returns
[1,2,3]
[[3]]
which is bound to catch people out.

Post: #4

Hi Bruce,

In page (512 foot print) 518 / 616 of user guide says:

"Although the system will allow you to store different types in the same local variable, this is poor programming practice and should
be avoided."

Of course, thanks for your findings and it let us to remember to avoid as user guide indicates.

Best regards!!

joseph


Post: #5

But it isn't storing a different type. It's converting the different type into the original type. I think the text is misleading. It should say that local variables maintain their type and if you try to store a different type into them, then the expression is converted into the local's type.

Dave


Post: #6

Indeed. As a side note, it works fine for me here....

TW

Post: #7

Yes, that's exactly what is happening and it's consistent with practice in other programming languages. I used to do a lot of programming in FORTRAN, where you could explicitly declare the type of a variable. You could declare A to be Real and B to be Integer, such that if you stored 3 in A it became 3.00 and if you stored 3.14 in B it became 3. I agree that this practice in PPL is correct.


Forum Jump: