HP Forums
HP Prime - local variables retain their initial type - Printable Version

+- HP Forums (https://archived.hpcalc.org/museumforum)
+-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html)
+--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html)
+--- Thread: HP Prime - local variables retain their initial type (/thread-255353.html)



HP Prime - local variables retain their initial type - BruceH - 11-09-2013

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.


Re: HP Prime - local variables retain their initial type - Joseph Ec - 11-09-2013

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


Re: HP Prime - local variables retain their initial type - David Hayden - 11-10-2013

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


Re: HP Prime - local variables retain their initial type - Tim Wessman - 11-10-2013

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

TW


Re: HP Prime - local variables retain their initial type - Michael de Estrada - 11-10-2013

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.