Help with sets

MRAB python at mrabarnett.plus.com
Tue Oct 12 22:24:20 EDT 2010


On 13/10/2010 02:40, Steve Howell wrote:
> On Oct 12, 5:54 pm, Lawrence D'Oliveiro<l... at geek-
> central.gen.new_zealand>  wrote:
>> In message<mailman.1606.1286889135.29448.python-l... at python.org>, D'Arcy
>>
>> J.M. Cain wrote:
>>> On Tue, 12 Oct 2010 23:34 +1300
>>> Lawrence D'Oliveiro<l... at geek-central.gen.new_zealand>  wrote:
>>
>>>>> Symmetry is always a tricky balance in programming languages.
>>
>>>> Is that what we used to call “orthogonality”?
>>
>>> No, orthogonality is something else.  "Orthogonal" means "perpendicular
>>> to."
>>
>> The appropriate meaning is ‘being able to combine independently” (as in the
>> orthogonal decomposition of a Fourier transform). An example of contemporary
>> usage, from the “Revised Report on the Algorithmic Language ALGOL 68” (1974,
>> I think):
>>
>>      0.1.2 Orthogonal design
>>      The number of independent primitive concepts has been minimized in
>>      order that the language be easy to describe, to learn, and to implement.
>>      On the other hand, these concepts have been applied “orthogonally” in
>>      order to maximize the expressive power of the language while trying to
>>      avoid deleterious superfluities.
>>
>> So “orthogonality” has to do with use of minimum number of primitive
>> components (operators, object types) in a maximum number of meaningful
>> combinations.
>
> Lawrence, I was actually talking about symmetry, not orthogonality.  I
> was making the observation that Python doesn't always strive for
> symmetry as its #1 driving concern (as well it shouldn't).  I think
> your definition of orthogonality is more what Python is about.  I'd
> say that symmetry and orthogonality go hand in hand for most
> situations.   Symmetry often helps minimize the number of primitive
> components, for example.  But sometimes symmetry arguments can be
> forced or just be made on a weak foundation.

Someone (Niklaus Wirth?) once said something about how a simpler
language isn't necessarily easier to learn. Pascal, for example, makes
a distinction between procedures and function, which can help to
prevent some bugs, and Python forbids assignment in expressions, which
also helps to prevent some bugs.



More information about the Python-list mailing list