Local variables retain the type that is first assigned. For example:
EXPORT t2()returns
BEGIN
LOCAL aa;
aa := [1,2,3];
print(aa);
aa := 3;
print(aa);
END;
[1,2,3]which is bound to catch people out.
[[3]]
HP Prime - local variables retain their initial type
|
|
« Next Oldest | Next Newest »
|
▼
Post: #5
11-09-2013, 06:15 PM
Local variables retain the type that is first assigned. For example: EXPORT t2()returns [1,2,3]which is bound to catch people out. ▼
Post: #6
11-09-2013, 10:04 PM
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 Of course, thanks for your findings and it let us to remember to avoid as user guide indicates. Best regards!! joseph ▼
Post: #7
11-10-2013, 10:46 AM
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: #9
11-10-2013, 12:42 PM
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. |