On 25 Feb 2006 at 20:01, edu-sig-request@python.org wrote:
Date: Sat, 25 Feb 2006 12:18:47 -0500 From: "Paul Barrett" <pebarrett@gmail.com>
The multidimensional array modules in their various incarnations, Numeric, Numarray and Numpy - with the Numpy being the latest and hopeful last - are based on J's array semantics and behaviour. So in some sense, you can teach J programming concepts by using Numpy.
Have you you tried Numpy?
-- Paul
Really_ can any of those tools be used to program tacitly? That is without the need to use variables (with the help of "forks", "hooks" and the like)? Daniel ***************************** OpenWorld Learning http://www.openworldlearning.org
Really_ can any of those tools be used to program tacitly? That is without the need to use variables (with the help of "forks", "hooks" and the like)?
Expressed as someone in touch with esoteric knowledge. I am guessing it's a Logo thing. Are you willing to expand? What is the importance of being able to program "tacitly"? More basic - what do you mean by programming tacitly? Does the fact that I don't find your explanation adequate indicate some problem in my knowledge base? My worldview? Art
On 26 Feb 2006 at 9:04, Arthur wrote:
Really_ can any of those tools be used to program tacitly? That is without the need to use variables (with the help of "forks", "hooks" and the like)?
Expressed as someone in touch with esoteric knowledge.
I am guessing it's a Logo thing.
Are you willing to expand?
I just wanted to verify the claim that some Python modules really incorporate J semantics.
What is the importance of being able to program "tacitly"?
You don't need to worry about variables or function parameters if you do.
More basic - what do you mean by programming tacitly?
The concept is also called Function-level programming http://en.wikipedia.org/wiki/Function-level_programming http://www.jsoftware.com/books/help/jforc/tacit_programs.htm
Does the fact that I don't find your explanation adequate indicate some problem in my knowledge base? My worldview?
Who am I to judge what is a problem to you? Daniel ***************************** OpenWorld Learning http://www.openworldlearning.org
Daniel Ajoy wrote:
On 26 Feb 2006 at 9:04, Arthur wrote:
Really_ can any of those tools be used to program tacitly? That is without the need to use variables (with the help of "forks", "hooks" and the like)?
Expressed as someone in touch with esoteric knowledge.
I am guessing it's a Logo thing.
Are you willing to expand?
I just wanted to verify the claim that some Python modules really incorporate J semantics.
Perhaps the problem is I didn't understand that such a claim was being made. I thought it was a reference to access to extensive array processing functionality. I am happily lost in the discussion beyond that. Function-level, value-level, whatever. I am the last to claim that Python is easy. I do claim that it is not effete. These distinctions, to me, fall into the realm of the effete - and are not where I prefer to spend my time or energy. So I perhaps wasted your time by asking you to expand. Art
I just wanted to verify the claim that some Python modules really incorporate J semantics.
numpy incorporates the idea of 'rank' and 'axes' much the way J or other array based languages do i.e. you can shape numbers to have however many axes in some multidimensional box. Then you can do operations on entire boxes, including in ways which combine them with each other. To be array based, and to use a semantics of tacit programming, appear to me as separable capabilities. Numpy doesn't try to be like J in this latter sense. APL isn't quite like J in this sense either, yet is array-based as well. Kirby
On 26 Feb 2006 at 8:55, kirby urner wrote:
I just wanted to verify the claim that some Python modules really incorporate J semantics.
numpy incorporates the idea of 'rank' and 'axes' much the way J or other array based languages do i.e. you can shape numbers to have however many axes in some multidimensional box. Then you can do operations on entire boxes, including in ways which combine them with each other.
I got this from a J document: http://jsoftware.com/books/help/learning/07.htm
In J, every verb has what might be called a natural, or intrinsic, rank for its argument(s). Here are some examples to illustrate. For the first example, consider:
*: 2 4 *: 2 3 4 4 9 16
Here, the arithmetic function "square" naturally applies to a single number(a 0-cell). When a rank-1 array (a list) is supplied as argument, the function is applied separately to each 0-cell of the argument. In other words, the natural rank of (monadic) *: is 0.
are you saying that functions in numpy also have intrinsic rank for its arguments. Do some numpy functions have 0 rank regardless of the rank of their arguments?
To be array based, and to use a semantics of tacit programming, appear to me as separable capabilities. Numpy doesn't try to be like J in this latter sense. APL isn't quite like J in this sense either, yet is array-based as well.
Kirby
I agree, but Paul talked about J "semantics and behaviour". J has tacit semantics so I was wondering if numpy also has this feature. You are saying that numpy doesn't use tacit programming semantics. Here is something I got from: http://www.unb.ca/web/transpo/mynet/Iverson_APL.htm
Tacit programming offers several advantages, including the following:
1. It is concise. 2. It allows significant formal manipulation of definitions. 3. It greatly simplifies the introduction of programming into any topic.
Daniel ***************************** OpenWorld Learning http://www.openworldlearning.org
Here is something I got from:
Thanks Daniel, interesting paper. Teaching resources around J have grown since that 1991 date. Roger Hui's 'idiosyncratic introduction to J' is one of my favorites. The ability to write 'labs' in J, interactive tutorials that work from the shell, is something I'd like to see better developed in Python. Kirby
participants (4)
-
Arthur
-
Daniel Ajoy
-
Daniel Ajoy
-
kirby urner