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

Reply via email to