in reply to Re: Re: Recursive map Design Questions
in thread Recursive map Design Questions

Well, people are expected to consider the possibility files are named "0", or that files can end with "\n0" (for the latter, there are even warnings build in in Perl).

I'd say that if you code general solutions, and that's what the OP was doing, you should consider such possibilities. Programs that run in a specific, or controlled environment may not have to take such things into consideration.

Oh, and don't get the idea that a package of '0' has never happened. The original post triggered a memory. Years ago, a co-worker was working on some complicated template system. Some code also dealt with 'ref' and blessed objects. And code *did* fail because some other code (which generated code) blessed objects in the package '0'.

OTOH, I've never encountered a supposedly text file that ended with "\n0". That doesn't mean I won't check for definedness when necessary.

Secondly, shouldn't bless [], 0; be considered a bug and reported for fixing?

Uhm, why? Just because it's inconvenient? Then we might as well forbid filenames to contain spaces and Microsoft Outlook - that's inconvenient as well. ;-)

Abigail

Replies are listed 'Best First'.
Re: Re: Recursive map Design Questions
by BrowserUk (Patriarch) on Oct 05, 2003 at 19:08 UTC

    I guess while it can happen, it must be checked for, so in that sense, I agree with your conclusion for generic solutions, and applaud you for your original mention as it was something I had never considered.

    That said, I think I would stil tend to ignore the possibility. If a reference my code is given to deal with has been blessed into a package who's name tests and false, then it is either a diliberate attempt to screw things up, or is the result of an accident. In the former case, the user gets what they deserve:). In the latter, it will mean my code will fail, which is probably a good thing as it will bring the error to the user attention.

    Uhm, why? Just because it's inconvenient?

    If there was a legitimate (even if esoteric and obscure) reason for blessing things into a false-testing namespace, then I could see the reasons for allowing it.

    However, without a legitimate reason, it makes no sense to me to inconvenience everyone with the need to test for it, when a simple test + error in the implementation of bless could remove that inconvenience.

    ...and Microsoft Outlook...

    I wouldn't forbid it, I would make it's use a capital offense with no possibility of commutation or appeal:) I once nearly lost a pretty good job by refusing to use it, and I will continue to do so. Though my reasons have nothing to do with convenience or lack thereof.


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
    If I understand your problem, I can solve it! Of course, the same can be said for you.