Edward Cherlin wrote:
[snip]
As a teacher, I know very well what it means. Some representations are
easier to understand, or easier to work with, or easier to learn from.
Various thinkers, including Babbage, Whitehead, and Iverson, have
commented on the effects of the way we represent problems on our
ability to think about them, and not only they but luminaries from
Fibonacci to Einstein have labored to invent or teach new notations
and representations.
I'm glad to see Iverson amongst Babbage and Whitehead. In 1974 I was
introduced to his invention: APL. That transformed how I thought about
problems and expressed algorithms. I still wish for some way to bring
some of that magic into Python.
I found it interesting to hear (in the migration to Python 3) that the
Python reduce function was not used a lot or well understood. I
certainly use and understand it.
A brief tutorial for any who have read this far and are curious: In
Python one may combine the elements of a list using sum() (if the sum is
desired). For other functions one uses reduce. To get the product of the
elements of a list Y: reduce(operator.mul, Y). In APL reduce is / and
multiply is x so one writes x/Y. (Classic APL had only upper case for
names).
I can write and comprehend x/Y much faster than the wordy equivalent.
And Y can be an array of 0 or more dimensions. +/Y computes the "row
sum" giving an array of one less dimensions*. So if Y were:
1 2 3
4 5 6
the row sum is 6 15.
* if the number of dimensions is 0 (a "scalar" value) the result is the
scalar value unchanged.
--
Bob Gailer
Chapel Hill NC
919-636-4239
When we take the time to be aware of our feelings and
needs we have more satisfying interatctions with others.
Nonviolent Communication provides tools for this awareness.
As a coach and trainer I can assist you in learning this process.
What is YOUR biggest relationship challenge?
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor