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

Reply via email to