This issue is definitely worth treatment in a lesson.

And the problem is not that J cannot represent this aspect of PEMDAS.
It's that doing so creates other problems.

For example:

   X=:2 :'m*n'
   2 X 3 + 4
10
   X/2 3 4
|syntax error

And it's not that we cannot work around those other problems:
   4 :'x X y'/2 3 4
24

... instead, the underlying issue is that PEMDAS would complicate the
rest of the system.  Consider, for example:

   (i.3 4) +/ .* (i.4 2)
 28  34
 76  98
124 162

   * table i. 10

   *. table i. 2

   X=:2 :'m +/ .* n'

It's probably best to explain that * is a different operation than the
multiplication operator which is frequently taught in schools (though
it is closely related).  You can implement the familiar operation
using J, but there's a reason for its design and it's in the student's
best interest to understand the distinctions.

-- 
Raul

On Fri, Feb 3, 2012 at 12:24 PM, km <k...@math.uh.edu> wrote:
> A big problem for college freshmen is that calculators tell them 2*3+4 is 10 
> and J tells them 14.  With apologies to "South Pacific": they have been 
> carefully taught PEMDAS.
>
> Sent from my iPad
>
>
> On Feb 3, 2012, at 10:44 AM, Michael Dykman <mdyk...@gmail.com> wrote:
>
>> This may sound trite, but
>>
>> Who is the audience? Everyone who does math, be it for engineering,
>> finance, or middle-school algebra. Interactive J should be
>> approachable for a 10 year-old and would be a huge improvement over
>> the calculators and spreadsheets in current use.
>>
>> What do they already know about J? Nothing or less.  While I am
>> occasionally surprised by the extent that J is used among very senior
>> financial types, it is a fact that J remains deep in obscurity within
>> the IT industry. I can't imagine that the picture is any clearer among
>> educators.
>>
>> What the want to know is how to do basic math with the console. What
>> they need is enough of a foundation to begin exploring complex
>> relationships.
>>
>> I agree, Khan Academy provides an excellent model. If we (as a
>> community) were ever fortunate enough to have Khan produce some
>> introductory materials, usage would explode.
>>
>> Having said that, shouldn't this thread be migrated to Chat?
>>
>> - michael dykman
>>
>> On Fri, Feb 3, 2012 at 11:02 AM, Dan Bron <j...@bron.us> wrote:
>>> Hmm.  I could do a basic intro to J course at one of the NYC JUGs.  If we
>>> broadcast & record it, we could then post it on youtube.
>>>
>>> The question is: who is the audience?  What do they already know about J?
>>> What do they want to know?
>>>
>>> -Dan
>>>
>>> -----Original Message-----
>>> From: programming-boun...@jsoftware.com
>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of William Tanksley, Jr
>>> Sent: Friday, February 03, 2012 10:43 AM
>>> To: Programming forum
>>> Subject: Re: [Jprogramming] Demise of @ and [: debate
>>>
>>> I'd love to see a youtube class on J. I'd download every episode as it
>>> aired to my phone and watch it on the train, using my computer to do
>>> experiments and take notes. That's what I do with "njwilberger"
>>> rational trig and hyperbolic geometry lessons.
>>>
>>> -Wm
>>>
>>> On Fri, Feb 3, 2012 at 6:57 AM, Skip Cave <s...@caveconsulting.com> wrote:
>>>> A methodical approach to teaching J might be to group the primitives into
>>>> groups of similar functionality. Order these groups by complexity (simple
>>>> to complex), as well as perhaps ranking them by familiarity with
>>>> already-learned concepts from traditional math classes, most familiar
>>>> first.
>>>>
>>>> With a learning sequence defined, spend a class on each group of
>>>> primitives, starting with the simplest and most familiar functions (+-*%,
>>>> or perhaps = =. =:), and progress to the most complex and unfamiliar
>>>> functions.You should probably start with direct execution, and introduce
>>>> verb creation after a few classes on basic primitives. Some class time
>>>> should be spent on how to read and understand the vocabulary definitions.
>>>>
>>>> Homework for each class would focus on usage of that current classes'
>>>> primitives, with previously-covered primitives thrown in for good measure.
>>>> The homework problems should be constructed to not require primitives that
>>>> haven't been covered yet (though nothing would prevent an advanced student
>>>> from looking ahead and trying them).
>>>>
>>>> It would be interesting to create an online J class, much like the Khan
>>>> Academy on youtube. In fact, if you really wanted to introduce J to the
>>>> masses, create a math tutorial that follows and supports Khan's math
>>>> tutorials, using J as the tool. This would be similar to Iverson's
>>>> "Concrete Math Companion" which follows 'Concrete Mathematics' (Graham,
>>>> Knuth, and Patashnik (GKP)).
>>>>
>>>> Just a thought..
>>>>
>>>> Skip
>>>>
>>>>
>>>> On Fri, Feb 3, 2012 at 2:27 AM, Linda Alvord
>>> <lindaalv...@verizon.net>wrote:
>>>>
>>>>> I agree, Don. I really was using a post from Roger because I find his the
>>>>> most difficult to untangle. This thread was a good one to explain my new
>>>>> thoughts about  @  and  [:
>>>>>
>>>>> My challenges are topics I might use to teach high school seniors
>>> studying
>>>>> precalculus, probability and statistics. They are similar to old APL
>>>>> contests I invented while I was teaching APL - to get better with the
>>>>> language myself. However, I'm not sure what would work in classes these
>>>>> days.
>>>>>
>>>>> At least I'm having fun with the readers of the forum. J is even becoming
>>>>> fun to use!
>>>>>
>>>>> Linda
>>>>>
>>>>> -----Original Message-----
>>>>> From: programming-boun...@jsoftware.com
>>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Don Guinn
>>>>> Sent: Friday, February 03, 2012 12:04 AM
>>>>> To: Programming forum
>>>>> Subject: Re: [Jprogramming] Understanding C. , A.
>>>>>
>>>>> Might want to get beginners a little comfortable with J before showing
>>> them
>>>>> C. and A.
>>>>>
>>>>> On Thu, Feb 2, 2012 at 7:56 PM, Linda Alvord <lindaalv...@verizon.net
>>>>>> wrote:
>>>>>
>>>>>> I am rethinking my concern with  @  and  [:  and am leaning toward
>>> using
>>>>>> explicit definitions as a way of teaching  J  to beginners as a natural
>>>>>> mathematical language.
>>>>>>
>>>>>> Some of the programmers responding to the forum think in idioms and use
>>>>>  @
>>>>>> happily.
>>>>>>
>>>>>>   f
>>>>>>  <:@-@[ C.&.|. ]
>>>>>>   i
>>>>>> -@#@[ |. C.
>>>>>>   k
>>>>>> <@i.@-@>:@[ C. ]
>>>>>>
>>>>>> 0thers favor the tacit approach with lots of  [:
>>>>>>
>>>>>>   g
>>>>>> ] C.&.|.~ [: <: [: - [
>>>>>>   h
>>>>>> [: |. ([: <: [: - [) C. [: |. ]
>>>>>>   j
>>>>>> C. |.~ [: - [: # [
>>>>>>
>>>>>>
>>>>>> Both styles are appropriate and I should not suggest one way or the
>>>>> other.
>>>>>> Many of you have suggested this.
>>>>>>
>>>>>>
>>>>>> We are looking for a simple way to introduce  J  to beginners. In my
>>>>>> opinion
>>>>>> we would introduce J  as a mathematical language for solving problem.
>>>>>>
>>>>>>
>>>>>> I am suggest starting with expressions that produce desired results.
>>>>>> Developing from right to left may come naturally.
>>>>>>
>>>>>>    (<:-3 6)C.&.|.'abc*ef*g'
>>>>>> **abcefg
>>>>>>
>>>>>> The next step is making explicit functions indicating if the intended
>>> use
>>>>>> is
>>>>>> monadic or dyadic. There is no use of  @  or  [: allowed at this point.
>>>>>>
>>>>>>    g=: 13 :'(<:-x)C.&.|.y'
>>>>>>    h=: 13 :'|.(<:-x)C.|.y'
>>>>>>   j=: 13 :'(-#x)|.x C.y'
>>>>>>
>>>>>> Now exploring the tacit definitions would be appropriate in some
>>>>>> environments and can be explored an studied in terms of forks and
>>> hooks.
>>>>>> At this special code and common idioms can be explored and timing of
>>>>>> expressions can be compared. In the end all roads lead to Rome.
>>>>>>
>>>>>>   3 6 f 'abc*ef*g'
>>>>>> **abcefg
>>>>>>   3 6 g 'abc*ef*g'
>>>>>> **abcefg
>>>>>>   3 6 h 'abc*ef*g't
>>>>>> **abcefg
>>>>>>   3 6 i 'abc*ef*g'
>>>>>> **abcefg
>>>>>>   3 6 j 'abc*ef*g'
>>>>>> **abcefg
>>>>>>
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: programming-boun...@jsoftware.com
>>>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord
>>>>>> Sent: Wednesday, February 01, 2012 6:01 PM
>>>>>> To: 'Programming forum'
>>>>>> Subject: Re: [Jprogramming] Understanding C. , A.
>>>>>>
>>>>>> Sorry I missed the version by Arie.  Nice!
>>>>>>
>>>>>>   3 6 (i=:-@#@[ |. C.) 'abc*ef*g'
>>>>>> **abcefg
>>>>>>   i
>>>>>> -@#@[ |. C.
>>>>>>
>>>>>>   j=: 13 :'(-#x)|.x C.y'
>>>>>>   j
>>>>>> C. |.~ [: - [: # [
>>>>>>
>>>>>>   3 6 j 'abc*ef*g'
>>>>>> **abcefg
>>>>>>
>>>>>> Please let me know if you have concerns or modifications as I plan to
>>> use
>>>>>> different rules beginning with challenge 6.
>>>>>>
>>>>>> Henceforth I'll have no opinion concerning the merits of  @  and  [:  I
>>>>>> hope
>>>>>> to learn to favor them both gracefully.
>>>>>>
>>>>>> Linda
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: programming-boun...@jsoftware.com
>>>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord
>>>>>> Sent: Wednesday, February 01, 2012 5:20 PM
>>>>>> To: 'Programming forum'
>>>>>> Subject: Re: [Jprogramming] Understanding C. , A.
>>>>>>
>>>>>> I'm happiest with the explicit version. It shows the arguments needed
>>> for
>>>>>> the application.
>>>>>>
>>>>>>   3 6 (f=:<:@-@[ C.&.|. ]) 'abc*ef*g'
>>>>>> **abcefg
>>>>>>   3 6 f a=:'abc*ef*g'
>>>>>> **abcefg
>>>>>>
>>>>>>   g=: 13 :'(<:-x)C.&.|.y'!
>>>>>>   3 6 g a
>>>>>> **abcefg
>>>>>>
>>>>>>   f
>>>>>> <:@-@[ C.&.|. ]
>>>>>>   g
>>>>>> ] C.&.|.~ [: <: [: - [
>>>>>> g=: 13 :'(<:-x)C.&.|.y'
>>>>>>
>>>>>> J provides the  ~  which shows up in the tacit version above.
>>>>>>
>>>>>> Then there is  h  with no  ~  and no  &.
>>>>>>
>>>>>>   h=: 13 :'|.(<:-x)C.|.y'
>>>>>>   h
>>>>>> [: |. ([: <: [: - [) C. [: |. ]
>>>>>>   3 6 h a
>>>>>> **abcefg
>>>>>>
>>>>>> Linda
>>>>>>
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: programming-boun...@jsoftware.com
>>>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Roger Hui
>>>>>> Sent: Wednesday, February 01, 2012 11:26 AM
>>>>>> To: Programming forum
>>>>>> Subject: Re: [Jprogramming] Understanding C. , A.
>>>>>>
>>>>>> Personally, I dislike expressions with multiple uses of ~ as they make
>>> my
>>>>>> head spin.
>>>>>>
>>>>>>    3 6 (C.&.|.~ <:@-)~ 'abc*ef*g'
>>>>>> **abcefg
>>>>>>   3 6 (<:@-@[ C.&.|. ]) 'abc*ef*g'
>>>>>> **abcefg
>>>>>>
>>>>>> I much prefer the second over the first.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Feb 1, 2012 at 8:05 AM, Aai <agroeneveld...@gmail.com> wrote:
>>>>>>
>>>>>>> Ah, I see that's a bit like yours David.
>>>>>>>
>>>>>>> Modifying it for 1< #x
>>>>>>>
>>>>>>>    3 6 (C. |.~ -@#@[) 'abc*ef*g'
>>>>>>> **abcefg
>>>>>>>
>>>>>>>
>>>>>>> (from Essays)
>>>>>>>
>>>>>>>    3 6 (C.&.|.~ <:@-)~ 'abc*ef*g'
>>>>>>> **abcefg
>>>>>>> k
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 01-02-12 16:47, Aai wrote:
>>>>>>>> Sorry for the noise. You should forget the previous ones I sent:
>>> they
>>>>>>>> are wrong.
>>>>>>>>
>>>>>>>> It looks like this one is ok:
>>>>>>>>
>>>>>>>> mtf=:_1&|.@C.
>>>>>>>>
>>>>>>>>    ]samples=: '*abcef' |."0 1 ~-i.6
>>>>>>>> *abcef
>>>>>>>> f*abce
>>>>>>>> ef*abc
>>>>>>>> cef*ab
>>>>>>>> bcef*a
>>>>>>>> abcef*
>>>>>>>>
>>>>>>>>
>>>>>>>>    ]res=: '*' ([,-.~) "1 samples
>>>>>>>> *abcef
>>>>>>>> *fabce
>>>>>>>> *efabc
>>>>>>>> *cefab
>>>>>>>> *bcefa
>>>>>>>> *abcef
>>>>>>>>
>>>>>>>>    res -: mtf&>/"1 (;~I.@:('*'&=))"1 samples
>>>>>>>> 1
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Met vriendelijke groet,
>>>>>>> @@i = Arie Groeneveld
>>>>>>>
>>>>>>>
>>> ----------------------------------------------------------------------
>>>>>>> For information about J forums see
>>> http://www.jsoftware.com/forums.htm
>>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>>
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Skip Cave
>>>> Cave Consulting LLC
>>>> Phone: 214-460-4861
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>>
>>
>> --
>>  - michael dykman
>>  - mdyk...@gmail.com
>>
>>  May the Source be with you.
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to