3 ms·
IIRC every variable have an anonymous name based on their scope. So a = 10; { a = 20; } print(a) This would print 10. Something like that. I just remembered t
by anon-3988 1y ago
IIRC every variable have an anonymous name based on their scope. So
a = 10;
{ a = 20; }
print(a)
This would print 10. Something like that. I just remembered that the first time I encountered this, I thought "this is going to be one of those things where I will unnecessarily trip over" and closed the page.
- debugnik 1y agoYou did mean shadowing then. But your example is deceptive, that C-like assignment syntax doesn't exist in Reason, much less in OCaml. The real Reason syntax makes the shadowing much clearer: let a = 10; { let a = 20; } print(a); And even more clear in OCaml: let a = 10 in begin let a = 20 in () end; print a BTW you should also close the page on Rust then, which also has OCaml-like variable shadowing (and many other languages use very similar forms of shadowing, such as local variables shadowing object fields in Java/C#).