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