22 Mar 2004 01:01
Re: to define, or to let
For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-scheme Anton van Straaten wrote: > It's not just about implementations and compilers, though. Code > involves communication to other humans, also, and this is often the > more difficult part of its job, or at least the one it does less well > (since by some accounts, too much effort has been put into doing > compilation well). I agree that communicating with other humans is much more important than giving hints to a mechanical optimizer, although I'm loath to completely ignore the latter. The LET vs LET* thing is nice because it lets the programmer encode his intent for the benefit of both humans and the compiler. > The unspecified eval order constructs allow programmers to document > their intent, and that can be important. If they make an error and > their documented intent doesn't match the program's actual semantics, > that's an error. That's how I see it too. > The concern is that this sort of error is a difficult one to catch, > and from a formal semantics perspective it's a doozy, which raises > bogeyman terms like unsafe, unsound, unpredictable, unverifiable and > non-deterministic (in the bad sense). Yeah, it's ugly, but it's a trade-off. If you allow "sequence doesn't matter" constructs, you can end up with ambiguous program behavior. But(Continue reading)
RSS Feed