The J Dictionary says: "It is convenient to supplement the *primitives* or
*primaries* provided in a language by *secondaries* whose names belong to
an easily recognized class."
http://www.jsoftware.com/help/dictionary/intro28.htm

I've always understood words you can rely on being there without the need
for "require", like: load, open, each, exit, edit, (...sorry, not edit!!)
as being members of this wonderful class of *secondaries*.

But how "easily recognised" is this class? How stable? Why isn't it as
painstakingly documented as the *primaries*?

I suggest it's partly because we don't agree what commonly used J words to
include in the canon of secondaries. And we don't know we don't agree. Is
it the contents of stdlib.ijs (which does in fact contain exit)? Or should
we include strings.ijs too?

stdlib is in fact "officially" documented here:
http://www.jsoftware.com/user/script_stdlib.htm
It proclaims itself as the "standard library", but you could be forgiven
for overlooking it or mistaking its importance. I only ever discovered it
by searching the site using:
https://www.google.co.uk/search?q=site:jsoftware.com+secondaries

If we were to make the conscious decision that J is to be kept the
jealously guarded secret of a fraternity of super-smart guys, then we
should carry on exactly as we are doing now.

If not, then we shouldn't.


On Tue, Jan 21, 2014 at 7:32 PM, Devon McCormick <devon...@gmail.com> wrote:

> The language R starts up with some messages including this:
>
> Type 'demo()' for some demos, 'help()' for on-line help, or
> 'help.start()' for an HTML browser interface to help.
> Type 'q()' to quit R.
>
>
>
> On Tue, Jan 21, 2014 at 2:11 PM, Joe Bogner <joebog...@gmail.com> wrote:
>
> > Another solution is to enhance the experience of jconsole. I get a
> > blank screen that is ready for input when I start it up.
> >
> > if the repl had a bit of introductory language and a built-in help
> > system to show the z_locale for example
> >
> > Something like:
> >
> > jconsole - version x - type help'' for help
> >
> > > help''
> >
> > The base locale is z. Enter names_z_ 3 to get a list of standard verbs
> > (functions) or names_z_ '' to see all standard names. Enter the name
> > to see the definition. Verbs are either monadic (one parameter) or
> > dyadic (two parameters). A monadic verb takes the argument on the
> > right. A dyadic verb takes the argument on the left and right.
> > Example: exit''
> >
> >
> > Of course even "names_z_ 3" may seem odd to an absolute newbie.
> >
> > It's all very powerful, just not very obvious. Perhaps the repl can
> > have special handling for help or ? or something so a person doesn't
> > need to deal with the blank parameter.
> >
> > Compared to some other REPLs.
> >
> > Kona - does a really nice job and seems to take the approach of having
> > nearly all the documentation inside the repl (little is available
> > online). I don't need to leave the environment to get help.
> >
> > joebo@joebo:~/dev/kona$ ./k
> > K Console - Enter \ for help
> >
> > > \
> >
> > Backslash Commands:
> > \0      datatypes help
> > \+      verb help
> > \'      adverb help
> > \:      I/O verb help
> > \_      reserved word help
> > \.      assignment/amend, function, control flow help
> > \d [todo]   directory command (todo)
> > \l f    load script f or f.k
> > \p [n]  show/set print precision (0=full)
> > \r [s]  show/set random seed
> > \s f    step script f or f.k
> > \t [e]  measure runtime of some k expression
> > \w      show workspace resources used
> > \[cmd]  system command (also \[ cmd]), \echo hello
> > \\      exit (or ctrl+d)
> >
> > > \0
> >
> > Datatypes  -4 -3 -2 -1 0 1 2 3 4 5 6 7
> > Monadic 4: reveals type, 4:1 2 3 yields -1
> > -4 vector symbol     `a`b`c or ,`a
> > -3 vector character  "abc" or ,"c"
> > -2 vector float      1.0 2.0 3.33 or ,1.0
> > -1 vector integer    1 2 3 or ,1
> >  0 list   general    (`a;1 2 3) or (`a;(1 2 3;(3 4;"c")))
> >  1 scalar integer    1
> >  2 scalar float      1.0
> >  3 scalar character  "c"
> >  4 scalar symbol     `s
> >  5 dictionary        .((`a;10;);(`b;20;))  or  .()  or  .,(`a;5;)
> >  6 nil               _n or (;;) (list of 3 nils)
> >  7 verbs/functions   +  +: {1+x}  +[1;]  (|+)  {[a;b]1+a+b}  {x+y}[1;]
> > Empty Lists:
> > -4 0#`
> > -3 ""
> > -2 0#0.0
> > -1 !0
> >  0 ()
> > Special numeric types:
> >  0N null integer
> >  0n null float
> > -0I infinity integer negative
> >  0I infinity integer positive
> > -0i infinity float   negative
> >  0i infinity float   positive
> > Dictionaries:
> > Start by making a dictionary d[`k]:4
> >
> >
> > > \+
> >
> > Dyadic or monadic is determined from context, default is dyadic
> > Add : after a verb to force the monadic form, + is plus, +: is flip
> > + monadic  flip. transpose a matrix (a depth-2 list)
> > + dyadic   plus. add numbers together
> > - monadic  negate. invert sign
> > - dyadic   minus. subtraction
> > * monadic  first. first element from the list
> > * dyadic   times. multiply two numbers
> > % monadic  reciprocal. 1 over x
> >
> >
> > Or ipython
> >
> > C:\Python27>python Scripts\ipython
> > Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]
> > Type "copyright", "credits" or "license" for more information.
> >
> > IPython 1.0.0 -- An enhanced Interactive Python.
> > ?         -> Introduction and overview of IPython's features.
> > %quickref -> Quick reference.
> > help      -> Python's own help system.
> > object?   -> Details about 'object', use 'object??' for extra details.
> >
> >
> > In [4]: dir()
> > Out[4]:
> > ['In',
> >  'Out',
> >  '_',
> >  '__',
> >  '___',
> >  '__builtin__',
> >  '__builtins__',
> >  '__doc__',
> >  '__name__',
> >  '_dh',
> >  '_i',
> >  '_i1',
> >  '_i2',
> >  '_i3',
> >  '_i4',
> >  '_ih',
> >  '_ii',
> >  '_iii',
> >  '_oh',
> >  '_sh',
> >  'exit',
> >  'get_ipython',
> >  'help',
> >  'quit']
> >
> >
> > Haskell:
> >
> > GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
> > Loading package ghc-prim ... linking ... done.
> > Loading package integer-gmp ... linking ... done.
> > Loading package base ... linking ... done.
> > Prelude> :?
> >  Commands available from the prompt:
> >
> >    <statement>                 evaluate/run <statement>
> >    :                           repeat last command
> >    :{\n ..lines.. \n:}\n       multiline command
> >    :add [*]<module> ...        add module(s) to the current target set
> >    :browse[!] [[*]<mod>]       display the names defined by module <mod>
> >
> >
> > On Tue, Jan 21, 2014 at 12:22 PM, Murray Eisenberg
> > <mur...@math.umass.edu> wrote:
> > > And just how is one supposed to discover the existence of “exit"?
> > >
> > > There’s a broader issue here: on the one hand, the disjointedness of
> the
> > standard J documentation into General Info, Release Highlights,
> Vocabulary,
> > User, Primer, etc.; and on the other hand, the lack of a search across
> the
> > local documentation. (At least so far as I can find.)
> > >
> > > Find in Files is of no use for “exit”, since as I recall most or all
> > stuff in the z locale is now coded at a low level rather than in a J
> script.
> > >
> > > An on-line search at www.jsoftware.com and even in jwiki doesn’t seem
> > to reveal the existence of “exit”, either.
> > >
> > > Of course even if there were such a productive search available, it
> > wouldn’t help if you didn’t know that “exit” is what you should search
> for.
> > >
> > > So I’ll second Blake McBride’s suggestion of a “comprehensive
> dictionary
> > of pre-defined verbs”.
> > >
> > >
> > > At Mon, 20 Jan 2014 12:06:30 -0700, Don Guinn <dongu...@gmail.com>
> > wrote:
> > >
> > >> exit is already defined in the z locale.
> > >>
> > >>
> > >> On Mon, Jan 20, 2014 at 11:31 AM, Devon McCormick <devon...@gmail.com
> > >wrote:
> > >>
> > >>> This is a good point and it's been brought up before.  I define
> > >>>   q=: 2!:55
> > >>> and enter
> > >>>   q''
> > >>> to exit J but it's not standard.  We should probably make "exit" more
> > >>> accessible.
> > >>>
> > >>>
> > >>> On Mon, Jan 20, 2014 at 1:23 PM, Blake McBride <bl...@mcbride.name>
> > wrote:
> > >>>
> > >>>> Greetings,
> > >>>>
> > >>>> Just providing some feedback....
> > >>>>
> > >>>> The fist thing I wanted to know when I started J was how to exit.  I
> > did
> > >>>> some research and discovered 2!:55.  I then defined a verb and used
> > that
> > >>> to
> > >>>> exit.  Therefore, in order to get a clean way to exit a new
> language,
> > I
> > >>> had
> > >>>> to learn what a verb is, what system verbs were available, how to
> > define
> > >>>> it, and how to load it.  (I know about ^d but think that is hardly a
> > >>> clean
> > >>>> way to exit.)
> > >>>>
> > >>>> Now, years later, I discover the pre-defined verb 'exit'.  I checked
> > the
> > >>>> docs, especially "Learning J".  There is no mention of 'exit'!
> > >>>>
> > >>>> As someone who has played with many languages over the years, and in
> > fact
> > >>>> an author of one, I respectfully suggest updating chapter 1 of
> > Learning J
> > >>>> to tell the user how to exit.  Making a research project out of the
> > first
> > >>>> obvious desire is an unnecessary impediment to a language acquision.
> > >>>>
> > >>>> Additionally, since I discovered 'exit', a comprehensive dictionary
> of
> > >>>> pre-defined verbs would be very helpful.  (I know about z, etc.)
> > >>>>
> > >>>> Thanks.  Just some thoughts...
> > >
> > > ——
> > > Murray Eisenberg                                mur...@math.umass.edu
> > > Mathematics & Statistics Dept.
> > > Lederle Graduate Research Tower      phone 240 246-7240 (H)
> > > University of Massachusetts
> > > 710 North Pleasant Street
> > > Amherst, MA 01003-9305
> > >
> > >
> > >
> > >
> > >
> > >
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
>
>
> --
> Devon McCormick, CFA
> ----------------------------------------------------------------------
> 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