BlankThank you all for very helpful responses to my last email.

     I will respond first to this comment from Matthew: "I think the idea of 
introducing graphical characters into J is a bad one and that energy towards 
getting new users into J would be better spent elsewhere like writing Labs." 
I repeat that I am not trying to get new users into J - I am trying to teach 
Mathematics and need an experiential tool that has the ease of 
communication, the independence from operating systems, the free cost to 
education and the well supported, thoroughly professional and reliable 
nature of the J system. It's got almost everything I want, including tacit 
programming - all I am looking for is how can it become exactly what I need 
rather than exactly what the J community needs in a manner that is 
transparent to the J community.

    Matthew also says: "I personally like the ascii method, despite it 
deceptively appearing as an ugly mess when first encountered, because once 
you get used to it it is beautiful. The important questions to me are: "How 
long does it take to get used to it and learn the beauty of J?" and: "Are 
average elementary students, secondary students and (say) Post-secondary 
Geography students capable of reaching this level of J understanding in the 
limited time that can be delegated to this task within their regular 
curriculum?"

    To a comment from Raul: "The first example in your table became " " when 
I try copying and pasting it into this message. This means you have not even 
begun to tackle the hard problem of figuring out how this kind of thing 
could even be possible." I copy something I said in a previous email: "In my 
proposal, keying is done in identical ASCII, storage is done in identical 
ASCII, transmission between systems is done in identical ASCII, mailing is 
done in identical ASCII and every user of J continues using ASCII in exactly 
the same way without knowing that anything has happened. The change is 
transparent and causes none of the difficulties that are being discussed." 
Thus the first example in the table would be stored and translated in 
exactly the same way as it always has. The only change is in output to the 
screen and the printer, when the two ASCII characters would be translated to 
a special character.

    Fraser says: "If your  H1[F(x),G(x)]  is mean to represent an expression 
in J I do not know whether you mean  H1(F(x),G(x)) where H1 is a monadic 
fucntion with argument  (F,G)x   or using H1 dyadically  (F H1 G) x" 
Actually I did not mean H1[F(x),G(x)] and  [ H2 (F, G) ] (x) to be J 
expressions, but, sort of, Mathematical expressions. All I am saying is that 
mathematically the % in (+/%#) is not the same kind of function as the % in 
3 % 7. The H2(F,G) has, in J language, verbs as its arguments, rather than 
nouns.

    In response to Bjorn, I am not currently a member of the J-Programming 
forum. I will join and look up what you suggest.

    I response to Bill, I promise to read Programming in J.

    In response to Don, I know that I can achieve what I want by a "program" 
with successive lines of code - but I want to be able to show one line that 
parallels the mathematical formula. How I do this at present is by copy and 
paste - which is something we couldn't do on the old IBM 2741 paper printing 
terminals!!  I am going to give an example of a session to illustrate the 
binomial theorem for (1 + x) ^ n. It is normal to prove theoretically that 
it works for natural number values of n in pre-calculus, but calculation 
using J can show that it works for any rational n if the series converges. 
What follows is a demonstration, using copy and paste, to develop the J 
sentence to do it. What I would like to know is, can someone work through a 
similar gradual process that is easy for a student to follow and ends up 
with tacit programming instead of a J sentence? If someone can do that, you 
might change my opinion.

  x=. 0.5  NB. For (1 + x )^n
   n=. 5
   r=. 6   NB. Take terms up to x^6
 i.r
0 1 2 3 4 5
   n- k =. i.r
5 4 3 2 1 0
   k<:/k =. i.r
1 1 1 1 1 1
0 1 1 1 1 1
0 0 1 1 1 1
0 0 0 1 1 1
0 0 0 0 1 1
0 0 0 0 0 1
   (k<:/k)*n-k=:i.r
5 5 5 5 5 5
0 4 4 4 4 4
0 0 3 3 3 3
0 0 0 2 2 2
0 0 0 0 1 1
0 0 0 0 0 0
   k>:/k+1
0 0 0 0 0 0
1 0 0 0 0 0
1 1 0 0 0 0
1 1 1 0 0 0
1 1 1 1 0 0
1 1 1 1 1 0
   (k>:/k+1)+(k<:/k)*n-k=:i.r
5 5 5 5 5 5
1 4 4 4 4 4
1 1 3 3 3 3
1 1 1 2 2 2
1 1 1 1 1 1
1 1 1 1 1 0
   */(k>:/k+1)+(k<:/k)*n-k=:i.r
5 20 60 120 120 0
   1,*/(k>:/k+1)+(k<:/k)*n-k=:i.r
1 5 20 60 120 120 0
   i. r + 1
0 1 2 3 4 5 6
   !i.r + 1
1 1 2 6 24 120 720
   (1,*/(k>:/k+1)+(k<:/k)*n-k=:i.r)%!i.r + 1
1 5 10 10 5 1 0    NB. Same result as Pascal's triangle
   x^i.r+1
1 0.5 0.25 0.125 0.0625 0.03125 0.015625
   (x^i.r+1)*(1,*/(k>:/k+1)+(k<:/k)*n-k=.i.r)%!i. r + 1
1 2.5 2.5 1.25 0.3125 0.03125 0
   +/(x^i.r+1)*(1,*/(k>:/k+1)+(k<:/k)*n-k=.i.r)%!i. r + 1
7.59375
   1.5^5  NB. Test if it gets the right result
7.59375
   r=. 20
   n=. 3.3
   x=. .5
   +/(x^i.r+1)*(1,*/(k>:/k+1)+(k<:/k)*n-k=.i.r)%!i. r + 1
3.81155
   1.5^3.3
3.81155

   x=.0.9
   n=.7.21
   +/(x^i.r+1)*(1,*/(k>:/k+1)+(k<:/k)*n-k=.i.r)%!i. r + 1
102.285
   1.9^7.21
102.285





 

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to