It is good to see renewed interest in using the 'primitives' script.  Its 
original purpose was to enable use of J in teaching environments where the use 
of symbols instead of words for function names added difficulty.

Camel Case was an option, but an alternative way of treating it would be 
appropriate.  It would be easy to modify the script to erase the names defined 
and replace them with CamelCase ones.

For a user who wants to use names for specific alternative uses of the 
primitives,  appropriate names are included but all of the definitions are 
linked directly to replacement by the primitive, so there is a great deal of 
redundancy.  There is no attempt to enforce valency so some strange verbal 
expressions execute .  It is essential for students to learn about valency and 
order of execution right at the beginning of using J.  This approach was 
adopted in the hope that as students advanced they would learn the primitives, 
their brevity and the relationships between most monadic and dyadic uses. 

The 'primitives' script was not revised when NuVoc was introduced, but it would 
be good to have a careful consideration of ways of matching the names.  They 
should be kept as brief as possible and not extend to phrases.

The primitives script should not be extended with a wide range of secondaries.  
Their place is much better in scripts for a specific purpose or field of 
application. 

Fraser







-----Original Message-----
From: Chat <chat-boun...@forums.jsoftware.com> On Behalf Of Ian Clark
Sent: Monday, 5 March 2018 6:05 PM
To: c...@jsoftware.com
Subject: Re: [Jchat] Where is J going ?

I suggest Fit isn't given a cover word of its own, but used to define new 
"secondaries" to match www.code.jsoftware.com/wiki/NuVoc exactly.
Also (maybe as an option?) extra code is inserted to enforce valency.
Examples:


   Reverse=: |. : [:

   Rotate=: [: : |.

   Shift=: |.!._

   ShiftRight1=:_1&Shift

   Reverse i.6

5 4 3 2 1 0

   2 Rotate i.6

2 3 4 5 0 1

   2 Shift i.6

2 3 4 5 _ _

   ShiftRight1 i.6

_ 0 1 2 3 4


I also suggest that if any "beginner" has got as far as using Fit, they've long 
abandoned this addon in favor of using the primitives directly.


More generally, here's my list of Improvements (?) to 'general/primitives'


opt for CamelCase flag without editing the script


Load into separate locale, and bring wds thru as needed

Remove unused words, on basis of the defining script (4!:3)

Use a phrase, not just the bare primitive (…see above)

in various forms of: (;.), (|) …etc

i.e. make the addon EXACTLY compatible with www.code.jsoftware.com/wiki/NuVoc

Use Monad/Dyad to enforce the valency (…see above)

(make it an option, in the same way as CamelCase)

Extend to Foreigns too

may need to propose a new set of "Secondaries"

Intelligent error message when an unloaded word is called.

-provide a stub for every known secondary, which displays some helpful guidance 
to user, e.g. which script to load

Include Secondaries from Dic.

http://www.jsoftware.com/help/dictionary/intro28.htm



On Mon, Mar 5, 2018 at 4:27 AM, Don Guinn <dongu...@gmail.com> wrote:

> The problem is that fit only applies to primitives.
>
> On Mar 4, 2018 9:23 PM, "Ian Clark" <earthspo...@gmail.com> wrote:
>
> > @Jose
> > I was just about to tell Don that.
> >
> > IMO this is a clumsy way of adjusting the behavior of a script at 
> > load time.
> > It will trip up a beginner.
> >
> > This is one of the first alterations I'd make. But I'm not sure 
> > what's
> the
> > best way to do it.
> > What first comes to mind is…
> >
> > (1) ask user to enter:
> >    CamelCase_z_=: 1
> > before loading the script.
> >
> > (2) (my preferred)
> > Have alternative scripts, e.g.
> >    load 'general/lowercaseprimitives'        NB. a trivial script which
> > loads: general/primitives
> >    load 'general/CamelCasePrimitives'     NB. makes the LIT adjustment,
> by
> > any user-transparent way.
> >
> > This problem (of loading same script with different options) turns 
> > up frequently for me.
> > What's the best-practice way of doing it, which is likely to be 
> > instantly understood by a beginner?
> >
> >
> > On Mon, Mar 5, 2018 at 4:11 AM, Jose Mario Quintana < 
> > jose.mario.quint...@gmail.com> wrote:
> >
> > > The addon script has the names as you described.  However, it 
> > > contains
> > the
> > > lines,
> > >
> > > NB.  Place  NB. on next line to have CamelCase form LIT =: tolower 
> > > each LIT
> > >
> > >
> > >
> > >
> > >
> > > On Sun, Mar 4, 2018 at 2:58 PM, Brian Schott 
> > > <schott.br...@gmail.com>
> > > wrote:
> > >
> > > > Ian,
> > > >
> > > > I like your ideas regarding general/primitives . I just did a 
> > > > load of
> > the
> > > > addon and was surprised that they are lowercase. My memory 
> > > > suggested
> > they
> > > > were uppercase initial letters like the Vocabulary. But I never 
> > > > use
> > them,
> > > > so take what I say with that in mind. I was please to see that 
> > > > in jqt
> > an
> > > F1
> > > > tap when the cursor is near the primitive, or near the 
> > > > spelled-out primitive, took me to the Vocabulary page. I was 
> > > > expecting to be
> > > delivered
> > > > to the Dictionary page, though. Maybe that's something I have 
> > > > not configured properly on my Mac. Another disappointment on my 
> > > > Mac was
> > that
> > > > shift+F1 did not take me to NuVoc (again, maybe a config issue).
> > > >
> > > > And, all of F1 access leaves out jconsole and jhs as far as I 
> > > > can
> tell.
> > > So,
> > > > I suspect new users are steered to jqt.
> > > >
> > > > I personally lean toward jconsole in much of my J use, btw.
> > > >
> > > >    JVERSION
> > > > Engine: j806/j64/darwin
> > > > Release: commercial/2017-11-06T10:20:33
> > > > Library: 8.06.09
> > > > Qt IDE: 1.6.2/5.6.3
> > > > Platform: Darwin 64
> > > > Installer: J806 install
> > > > InstallPath: /users/brian/j64-806
> > > > Contact: www.jsoftware.com
> > > > ------------------------------------------------------------
> ----------
> > > > 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