On Fri, Mar 15, 2013 at 1:43 PM, km <[email protected]> wrote:
> Here's a shot at specifying a J core by deleting things from the Vocabulary
> page.
Here are some of my opinions:
> = • Equal =. Is (Local) =: Is (Global)
> < Box • Less Than <. Floor • Lesser Of (Min) <: Decrement • Less
> Or Equal
>> Open • Larger Than >. Ceiling • Larger of (Max) >: Increment • Larger
>> Or Equal
Core J does not need decrement, nor increment - you can use -&1 or +&1
> _ Negative Sign / Infinity _. Indeterminate _: Infinity
Core J does not need indeterminate, nor should it need constant
functions. You can use constant"_ for example.
> + Conjugate • Plus +. Real / Imaginary • GCD (Or) +: Double • Not-Or
Core J should probably ignore complex numbers (this also discards some
later verbs). They are useful but not that useful. Double and Not-Or
can also be ignored. I'd also discard boolean operations.
> * Signum • Times *. Length/Angle • LCM (And) *: Square • Not-And
The only core element on this line is, I think: Times
> - Negate • Minus -. Not • Less -: Halve • Match
I'd ignore Halve.
> % Reciprocal • Divide
> %: Square Root • Root
I'd ignore %:
> ^ Exponential • Power ^. Natural Log • Logarithm ^: Power (u^:n u^:v)
> $ Shape Of • Shape
> $: Self-Reference
I'd ignore ^. and $:
> ~ Reflex • Passive / Evoke ~. Nub • ~: Nub Sieve • Not-Equal
I'd ignore nub sieve and evoke.
> | Magnitude • Residue |. Reverse • Rotate (Shift)
...
> : Explicit / Monad-Dyad
> :: Adverse
I'd ignore Adverse (it's rarely used, and for good reason)
> , Ravel • Append ,. Ravel Items • Stitch ,: Itemize • Laminate
> ; Raze • Link
> ;: Words
>
> # Tally • Copy
>
> ! Factorial
> !: Foreign
> / Insert • Table
> /: • Sort
> \ Prefix
> \: • Sort
>
> [ Same • Left [: Cap
> ] Same • Right
> { • From {. Head • Take {: Tail •
> } • Amend (m} u}) }. Behead • Drop }: Curtail •
>
> " Rank (m"n u"n) ". Do • ": Default Format • Format
>
>
> @ Atop @. Agenda @: At
> & Bond / Compose &. &.: Under (Dual) &: Appose
I'd ignore &.: and @: and &: - they are convenient but unnecessary.
Similarly, I'd ignore {: and }: - we are trying to give the beginner a
simpler to learn vocabulary.
u@v is equivalent to u@(v"_) for example.
> ? Roll • Deal ?. Roll • Deal (fixed seed)
I'd ignore ?.
> a. Alphabet a: Ace (Boxed Empty)
> b. Boolean / Basic
I'd ignore b.
> e. • Member (In)
> E. • Member of Interval
>
> i. Integers • Index Of i: Steps • Index Of Last I. Indices • Interval
> Index
> j. Imaginary • Complex
I'd ignore i: and j.
> NB. Comment
I'd also be hard pressed to find an application which used all of
these, which was suitable as an illustration for beginners.
That said, rather than trying to define a comprehensive "core
vocabulary" I'd be interested in a concept like "J material for
beginners should begin with a vocabulary pertinent to that essay".
FYI,
--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm