I'm listening to the lectures of an interesting Coursera class called "Programming Languages," taught by someone called Dan Grossman at the University of Washington. It's about functional languages, and it is making me appreciate Mathematica in a new way.
The initial part of the course talks about SML (Standard Meta Language), which is similar to Mathematica, but has static type checking (I wouldn't have known what this was before the course), doesn't allow "rebinding" of values, and of course, doesn't have all of our functions.
There is a SML construction called "let," which seems like Module or Block. For example,
..... let val x = 2 in x +2 end
defines the x as having the value of 2 only inside the let expression. I'm interested in finding out more about how it compares/differs.
Most questions asked here are about using an often exotic function - useful for people wanting to know about how to use that function, but not useful for deepening our understanding of Mathematica itself. I think we should encourage questions and discussion that explore these "deeper" issues.