I think that I almost understand "shadowing", maybe ...
val pi = 3.14159; fun area (r) = pi*r*r; area 2.0; => 12.56636
So far so good ...
re-declare pi ... val p1 = 0.0;
Here is where things get blurry for me. When/how is the *new* pi available? Is it only available if re-declared in a *block* of code, making it local to that block and therefore usable there and only there?
After re-declaring pi above, executing the "area" function uses the original pi.
I get that!
What I'm not sure of is how to use the re-declared pi. TIA ...