On Sun, Apr 11, 2010 at 17:51, kirby urner <kirby.urner@gmail.com> wrote:
Sorry, I don't know J (Kirby does), but this is exactly the reason I prefer Python. Readability counts (for me).
That's what they said to Fibonacci when he tried to explain why Arabic numerals were better for math than Roman numerals. But Roman numerals are better in readability and algorithmic complexity if you rarely do anything but add and subtract, as merchants did before interest payments became critical.
The chapter on interest calculations in Liber Abaci was particularly important.
Roman numerals are precisely equivalent to abacus notation. It is odd that the distinction between math/science programming and business programming is nearly a thousand years old, but there it is.
Fibonacci's Liber Abaci introduced the Indian/Arabic number system, based on the abacus.
No, in spite of the title, not based on the abacus, any more than calculus is based on pebbles. http://faculty.evansville.edu/ck6/bstud/fibo.html Though the title of the book suggests the use of the abacus, in fact Fibonacci freed arithmetic from calculations using the abacus.
The place value system corresponds to the rods of the abacus, with the zero corresponding to a rod with no beads (a place holder).
Roman numerals, in contrast, have nothing to do with abacus notation and have no place value e.g XIV for 14 or MMMCCC for 3300.
The Japanese, Chinese, and Roman abacI use beads or pebbles (calculi) with values of 1 and 5. http://en.wikipedia.org/wiki/Abacus http://en.wikipedia.org/wiki/Roman_abacus The Roman notation uses letters with values of 1 and 5 times a power of 10, so that one can write down the Roman numeral for an abacus setting simply by writing the letter corresponding to each calculus on the board, or put a number on the board by placing a pebble for each letter. Adding and subtracting Roman numerals is isomorphic with manipulating an abacus. 7 --> 5+2 --> VII 3 --> 0+3 --> III VII + III --> VIIIII --> VV --> X 5+2 + 0+3 --> 5+5 --> 0+1,0+0 and similarly for LXX + XXX etc.
http://www.novaroma.org/via_romana/numbers.html
Roman numbers suck for arithmetic operations of any kind IMO.
numbers =. i. 11 NB. 0..10
...similar to Python's range built-in.
These objections are trivial and uninformed. You aren't a mathematician, you don't like math and math notation, so there is nothing more to say, except please stand out of the way of people who can benefit from it and want it.
One could argue any computer language comprises a math notation.
In the mathematical theory of languages, we can regard any Turing-complete symbol-and-rule set as a way to express all of mathematics, but that is outside the question of what language to teach or publish in, when the aim is communication with humans.
Also, one could argue that all creatures are mathematicians in some innate way (Keith Devlin's point).
So they are, beyond argument. So why are we telling them how they want to do math and computing? The mindset of "When I want to hear your opinion, I'll tell it to you" is what I hate most about education systems of the past and present.
Carving out a special caste of humans and calling them "mathematicians" is a practice within various institutions.
Mathematicians are not a caste, but a guild with stiff entry requirements. I am not a full member, since I quit after my BA and went to teach in the Peace Corps.
I've noticed many of these institutions promote a kind of snobbery, but then such is the human ego.
See The Theory of the Leisure Class, by Thorstein Veblen, and Buddhist teachings on no-self. Reverse snobbery is also a feature of human ego.
You can append a table to a table if they have a dimension in common. You can't append a table to a list unless the list is turned into a one-row table.
Note that numpy shares some of APL's and J's ability to shape data into multi-dimensional objects with rank.
Yes. It would be more productive to discuss numpy here rather than fight a meaningless rwar.
import numpy a = numpy.array(range(10)) a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) a.reshape((2,5)) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) a = a.reshape((2,5)) a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) numpy.concatenate((a,a)) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) numpy.concatenate((a,a), axis=1) array([[0, 1, 2, 3, 4, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 5, 6, 7, 8, 9]])
I can easily give you a short sequence of lessons leading to this level, introducing some other arithmetic, transcendental, and array-handling functions along the way, and a little more about operating on functions to define new functions.
Python is much nearer to standard Math-notation, that is a good thing.
LOL. Math notation is what mathematicians use, not schoolchildren.
Math notations, like music notations, are the common heritage of humankind, not the special property of an elite caste of human.
That being said, many math notations, including computer languages, are quite opaque until deciphered.
Those already "in the know" may exult in their exclusive knowledge, that's been true since time immemorial.
Those cryptic expressions on a T-shirt from the MIT gift shop serve as mnemonics, are reminders of long hours spent unpacking the meanings.
To a non-initiate, it all looks like so much unreadable APL. :)
Of course non-math notations share in these encrypting / compacting capabilities. You needn't use math notations to create operational systems (institutions) with their respective insiders and outsiders, with insiders often ranked according to their "degree" of inner-ness.
We've not really defined "mathematics", "mathematician" or "math notation" for the purposes of this thread, so maybe one could argue that all notations are inherently mathematical in that they're aids to thought processes, which processes by their very nature are computational in some degree.
Is Chinese a math notation? Write a 500 word essay on why it is. Write another 500 word essay on why it isn't.
They are constantly inventing more of it. What you call math notation is known to mathematicians as "arithmetic".
Iverson called APL an executable math notation (MN). MNs were divided into machine-executable and not.
Leibniz dreamed of machine-executable logical languages. We have them now, call them "computer languages".
There is no standard math notation.
Nor is there a strongly fixed meaning to the concept of "math notation". Is Python a math notation? One could argue that it is. Or call it a machine-executable logic.
Polish: + 1 2 Infix: 1 + 2 Reverse Polish: 1 2 +
Reverse Polish is one of the two standard calculator input systems, the one used by engineers, from HP. Polish is standard in LISP and combinatory logic. Neither requires parentheses. Infix notation, as on TI and related calculators, requires parentheses, and is much more difficult for complex expressions.
I like to learn new languages - up to a point. I don't see the added value of J in this case.
I like to learn languages a lot more than you, then. I don't consider anybody educated in computing without knowing something of languages from the LISP, APL, FORTH, OOP, and scalar language families.
"Like" may not be the operative word in all cases. Some people just don't have the privilege to study that much. I wish that they did.
Socrates worked with that slave boy to show how intelligence was innate, but he didn't manage to abolish slavery.
This is clearly a Python list, so I'm never going to apologize for showing a Pythonic solution or implementation that could just as well be done in another language in far fewer steps.
I'm happy to have APL and J mentioned for comparing and contrasting (I mention them myself), but if one judges one needs to stick with Python for a given task (because it's what they know, and because the task is looming), then it's hardly my place to judge them mentally and/or morally deficient in some way.
Just my 2c
Christian
Thanks for your remarks Christian. Don't let this Ed character bully or intimidate you. He likes to show off, which is fine, but he lacks diplomatic skills IMO. But then some say the same about me.
I don't like to show off. I like to get facts straight. The lack of diplomatic skills is a symptom of my strong ADHD.
Kirby
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://www.earthtreasury.org/