[Jprogramming] Demise of @ and [: debate
km
km at math.uh.edu
Sat Feb 4 01:24:16 HKT 2012
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 <mdykman at 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 at 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-bounces at jsoftware.com
>> [mailto:programming-bounces at 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 <skip at 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
>> <lindaalvord at 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-bounces at jsoftware.com
>>>> [mailto:programming-bounces at 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 <lindaalvord at 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. at -@>:@[ 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-bounces at jsoftware.com
>>>>> [mailto:programming-bounces at 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-bounces at jsoftware.com
>>>>> [mailto:programming-bounces at 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-bounces at jsoftware.com
>>>>> [mailto:programming-bounces at 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 <agroeneveld400 at 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&|. at 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
> - mdykman at gmail.com
>
> May the Source be with you.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
More information about the Programming
mailing list