"Omid Mo'menzadeh" <omid.mnza...@gmail.com> writes: > I'm just re-stating this to make sure I'm getting it right: Definitions are > lazy, and the expression in front of # is lazy too, so it gets a chance to > see the definition once it's done? Am I right?
It's not a definition but an assignment, and the assignment is not "lazy" but executed as soon as it is complete. Recognizing its completeness may require examining the type of the next token, and the type of $ depends on its value (which consequently needs to be evaluated to figure out its type) while the type of # doesn't. -- David Kastrup