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
<[email protected]> 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 <[email protected]> wrote:
>
>> exit is already defined in the z locale.
>>
>>
>> On Mon, Jan 20, 2014 at 11:31 AM, Devon McCormick <[email protected]>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 <[email protected]> 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                                [email protected]
> 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

Reply via email to