[Tutor] Combining dictionaries

Eric Walker ewalker at micron.com
Wed Sep 7 20:35:52 CEST 2005

On Wednesday 07 September 2005 11:10 am, bob wrote:
> I enjoy "philosophical" discussions like this. To help us have common
> terminology I present some quotes from dictionary.com:
> ---------------------------------------------------------------
> bug:
> An unwanted and unintended property of a program or piece of hardware,
> especially one that causes it to malfunction. Antonym of feature.
> ---------------------------------------------------------------
> feature:
> An intended property or behaviour (as of a program). Whether it is good or
> not is immaterial (but if bad, it is also a misfeature)
> ---------------------------------------------------------------
> misfeature:
> A feature that eventually causes lossage, possibly because it is not
> adequate for a new situation that has evolved. Since it results from a
> deliberate and properly implemented feature, a misfeature is not a bug. Nor
> is it a simple unforeseen side effect; the term implies that the feature in
> question was carefully planned, but its long-term consequences were not
> accurately or adequately predicted (which is quite different from not
> having thought ahead at all). A misfeature can be a particularly stubborn
> problem to resolve, because fixing it usually involves a substantial
> philosophical change to the structure of the system involved.
> Many misfeatures (especially in user-interface design) arise because the
> designers/implementors mistake their personal tastes for laws of nature.
> Often a former feature becomes a misfeature because trade-offs were made
> whose parameters subsequently change (possibly only in the judgment of the
> implementors). "Well, yeah, it is kind of a misfeature that file names are
> limited to six characters, but the original implementors wanted to save
> directory space and we"re stuck with it for now."
> -----end of definitions ----------------------------------
> >Does not it seem odd that if a and b are dictionaries, c = a + b does not
> >result in their union?
> Given that the (relatively new) set type in Python, use boolean operators &
> and | for union and intersection, I'd prefer & to +.
> >Does it not seem to violate the Principal of Least Astonishment to notice
> >what print "spam " "eggs"*3 does?
> Any language that imposes operator precedence will have unexpected
> outcomes. That is why I have always liked APL, which has no precedence.
> Strictly right-to-left evaluation with () to group operations in some other
> order.
> >And, surely, you are not suggesting that Python 2.4 represents the zenith
> > of programming language design?
> I certainly hope not. I am merely asserting that there is a design that has
> evolved over 14 or so years, and that my ability to use a language depends
> on my learning it rather than expecting it to behave the way I want
> (expect) it to.
> Having worked with APL I am always disappointed that Python does not have
> native array operations. I 'd like to write [1,2,3] + [2,4,6] and get
> [3,6,9], and +/[1,2,3] and get 6. Unfortunately Python does not work that
> way.
> Having recently used Javascript I find it has features that make some
> aspects of programming easier than Python!
> >Incidentally, I've been writing compilers and interpreters since 1968 and
> > have an EECS degree from MIT, so I do have a clue.
> I started studying formal language theory (on my own) in 1972, maintained
> the APL interpreter in 1975 and devised and helped implement my first
> language in 1976. My BSEE from RPI predates any CS departments.
> Bob Gailer
> phone 510 978 4454

Nice to know we have some heavy hitters monitoring this list.
Eric Walker
EDA/CAD Engineer
Work: 208-368-2573

More information about the Tutor mailing list