How am I supposed to treat new identifiers? As mentioned, a new identifier doesn't need to be initialised explicitly, however, at the same time, the variable will be invisible out of the function area. So should I treat a as a new variable with a default value of 0 or report an error
How am I supposed to treat new identifiers? As mentioned, a new identifier doesn't need to be initialised explicitly, however, at the same time, the variable will be invisible out of the function area. So should I treat a as a new variable with a default value of 0 or report an error
function test
a <- 1
#
print a
Thx!
Hi Zexu,
"7.variables do not need to be defined before being used in an expression, and are automatically initialised to the (real) value 0.0"
"12. a function's parameters and any other identifiers used in a function body are local to that function, and become unavailable when the function's execution completes"
My interpretation of rules 7 and 12 is since a was defined in the local function, a is no longer available when the function ends, so when a is used outside the function it is treated as a new parameter so it will be 0.0.
Since the same identifier name can't be reused / its a local variable being called outside of its scope shouldn't this cause an error?
Why can't the same identifier name be reused? After the function ends the program would believe it is seeing the identifier for the first time and so would initialize it to 0.
This assumption was based off 'you cannot introduce a new function if its name is already used as a variable's name, or introduce a new variable if its name is already used as a function's name.' from https://secure.csse.uwa.edu.au/run/help2002?p=np&opt=U151 and 'a function's parameters and any other identifiers used in a function body are local to that function, and become unavailable when the function's execution completes'.
I must've misunderstood the meaning of 'becomes unavailable', is the correct rules that only function identifiers must be wholly unique, variables can be reassigned within their scope, and any local identifiers (function parameters + identifiers used in a function body) can be assigned/used as 'new' variables outside of their scope?
https://secure.csse.uwa.edu.au/run/help2002?p=np&opt=B388&year=2024 do we instead follow this and not allow any duplicate names of variable reassignment now??
https://secure.csse.uwa.edu.au/run/help2002?p=np&opt=B388&year=2024 do we instead follow this and not allow any duplicate names of variable reassignment now??
Yes, otherwise if you have already done it Amitava said you can state the assumptions you made in a file. So, you can do either, just state what assumption you made.