If it were written it might be written as a series of guidelines rather than specific rules.
As an example, I would suggest that a guideline from the original Elements of Style by Strunk, fits J even closer than English. Vigorous writing is concise. A sentence should contain no unnecessary words, a paragraph no unnecessary sentences, for the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts. This requires not that the writer make all his sentences short, or that he avoid all detail and treat his subjects only in outline, but that every word tell. —Elementary Principles of Composition, The Elements of Style Whereas a particular rule favouring [: over @: in all cases, would bog down with exceptions. Rigid rules without deeper understanding seem to be the foundation of current criticism. Cheers, bob On 2013-02-02, at 6:21 AM, Raul Miller wrote: > I'm not sure if that has been written yet, in the context of J. > > Also... > > http://en.wikipedia.org/wiki/The_Elements_of_Style#Criticism > > I am not sure it should be. > > -- > Raul > > On Sat, Feb 2, 2013 at 9:15 AM, km <[email protected]> wrote: >> Consider comparing the writing of J to the writing of English. What would >> be in your "Strunk and White" for the writing of J? >> >> (The Elements of Style by William Strunk, Jr and E B White is a "writing" >> book. Famously brief, it discusses rules for writing correctly and well.) >> >> Kip >> >> Sent from my iPad >> >> >> On Feb 2, 2013, at 7:38 AM, Raul Miller <[email protected]> wrote: >> >>> While I am comparing the learning of J to the learning of english: >>> >>> Do we have grammar school students learn english by asking them to >>> only use [insert grammatical structure here]? Why or why not? >>> >>> If so, how well does that work? >>> >>> If not, what do we do instead? >>> >>> Thanks, >>> >>> -- >>> Raul >>> >>> On Sat, Feb 2, 2013 at 2:13 AM, Linda Alvord <[email protected]> >>> wrote: >>>> Also, this has only forks: >>>> >>>> >>>> >>>> 5!:4 <'t1' >>>> >>>> ┌─ 2 >>>> ┌───┼─ {. >>>> │ └─ [ >>>> ├─ $ >>>> │ ┌─ [: >>>> ──┤ ┌────┼─ ; >>>> │ │ └─ ] >>>> │ ├─ /: >>>> └───┤ ┌─ [: >>>> │ ├─ ; >>>> └────┤ ┌─ [: >>>> │ ├─ /. ─── < >>>> └────┤ >>>> │ ┌─ [: >>>> └──────┼─ i. >>>> └─ [ >>>> >>>> >>>> >>>> This has both forks and hooks: >>>> >>>> >>>> >>>> 5!:4 <'t2' >>>> >>>> ┌─ 2 >>>> ┌───┼─ {. >>>> │ └─ [ >>>> ├─ $ >>>> ──┤ ┌─ ] >>>> │ │ ┌─ /: >>>> │ ├─ & ─┴─ ; >>>> └───┤ >>>> │ ┌─ [: >>>> │ ├─ /. ─── < >>>> └─────┤ >>>> │ ┌─ [: >>>> └──────┼─ i. >>>> └─ [ >>>> >>>> >>>> >>>> Linda >>>> >>>> >>>> >>>> -----Original Message----- >>>> From: [email protected] [mailto:programming- >>>> [email protected]] On Behalf Of Linda Alvord >>>> Sent: Saturday, February 02, 2013 2:00 AM >>>> To: [email protected] >>>> Subject: Re: [Jprogramming] inverse oblique >>>> >>>> >>>> >>>> I remember fondly how Ken loved to read the unabridged dictionary. Richness >>>> of the language and the derivations of the words was a joyous experience >>>> for him. The J language has this same richness. >>>> >>>> >>>> >>>> For students coming to the language with years of mathematical background >>>> in abstract algebra, calculus, differential equations and the like, they >>>> are ready t o jump easily to abstract combinations. >>>> >>>> >>>> >>>> I keep thinking in terms of the long time it takes high school students to >>>> master functional notation like f(x) and g(x). >>>> >>>> >>>> >>>> >>>> >>>> To get from t1 to t2 requires and "idiom" x u&v y ↔ (v x) u (v y) >>>> >>>> >>>> >>>> t1=: 13 :'(2{.x)$(;y)/:;</.i.x' >>>> >>>> t2=: 13 :'(2{.x)$y/:&;</.i.x' >>>> >>>> >>>> >>>> So although t1 is longer than t2, t2 is more condensed and compex. This >>>> is why I say easier: >>>> >>>> >>>> >>>> t1 >>>> >>>> (2 {. [) $ ([: ; ]) /: [: ; [: </. [: i. [ >>>> >>>> t2 >>>> >>>> (2 {. [) $ ] /:&; [: </. [: i. [ >>>> >>>> >>>> >>>> The condensed spacing of /:&; gives away the increased complexity of the >>>> second tacit version. >>>> >>>> >>>> >>>> My guess is that you would spend less time reading the dictionary to master >>>> >>>> t1 than t2. >>>> >>>> >>>> >>>> Linda >>>> >>>> >>>> >>>> -----Original Message----- wo >>>> >>>> From: <mailto:[email protected]> programming- >>>> [email protected] [mailto:programming- >>>> <mailto:[email protected]> [email protected]] On >>>> Behalf Of Raul Miller >>>> >>>> Sent: Friday, February 01, 2013 9:20 AM >>>> >>>> To: <mailto:[email protected]> [email protected] >>>> >>>> Subject: Re: [Jprogramming] inverse oblique >>>> >>>> >>>> >>>> How do you define "easier"? >>>> >>>> >>>> >>>> In my opinion, it's easier to go from simple (fewer tokens) to complex >>>> (more tokens), but also someone has to write the code to do the >>>> transformation and until that's been done even this concept of "easier" can >>>> be indistinguishable from "can't be done". >>>> >>>> >>>> >>>> -- >>>> >>>> Raul >>>> >>>> >>>> >>>> On Fri, Feb 1, 2013 at 5:05 AM, Linda Alvord < >>>> <mailto:[email protected]> [email protected]> >>>> >>>> wrote: >>>> >>>>> If t1 is easy tacit and t2 is advanced tacit, wouldn't it be easier >>>> >>>>> for J to figure t2 from t1 than it is for me? >>>> >>>> >>>>> t=: 5 7 2 ?@$ 1e6 >>>> >>>>> s=: $t >>>> >>>>> x=: </.t >>>> >>>>> t1=: 13 :'(2{.x)$(;y)/:;</.i.x' >>>> >>>>> t-:s f x >>>> >>>>> 1 >>>> >>>>> t2=: 13 :'(2{.x)$y/:&;</.i.x' >>>> >>>>> t-:s g x >>>> >>>>> 1 >>>> >>>>> t1 >>>> >>>>> (2 {. [) $ ([: ; ]) /: [: ; [: </. [: i. [ >>>> >>>>> t2 >>>> >>>>> (2 {. [) $ ] /:&; [: </. [: i. [ >>>> >>>> >>>>> Or is that just wishful thinking? >>>> >>>> >>>>> Linda >>>> >>>> >>>> >>>>> -----Original Message----- >>>> >>>>> From: <mailto:[email protected]> programming- >>>> [email protected] >>>> >>>>> [ <mailto:[email protected]> mailto:programming- >>>> [email protected]] On Behalf Of Roger >>>> >>>>> Hui >>>> >>>>> Sent: Thursday, January 31, 2013 1:49 PM >>>> >>>>> To: Programming forum >>>> >>>>> Subject: Re: [Jprogramming] inverse oblique >>>> >>>> >>>>> t -: (2{.s) $ x /:&; </.i.s >>>> >>>>> 1 >>>> >>>> >>>> >>>> >>>>> On Thu, Jan 31, 2013 at 10:47 AM, Roger Hui >>>> >>>>> < <mailto:[email protected]> [email protected]>wrote: >>>> >>>> >>>>>> t=: 5 7 2 ?@$ 1e6 >>>> >>>>>> s=: $t >>>> >>>>>> x=: </.t >>>> >>>> >>>>>> t -: (2{.s) $ (;x)/:;</.i.s >>>> >>>>>> 1 >>>> >>>> >>>> >>>> >>>>>> On Thu, Jan 31, 2013 at 10:28 AM, Raul Miller >>>> >>>>> < <mailto:[email protected]> [email protected]>wrote: >>>> >>>> >>>>>>> Let's start with an arbitrary array: >>>> >>>> >>>>>>> A=: i. 2 3 >>>> >>>> >>>>>>> We can box oblique lines from this array: >>>> >>>> >>>>>>> </. A >>>> >>>>>>> +-+---+---+-+ >>>> >>>>>>> |0|1 3|2 4|5| >>>> >>>>>>> +-+---+---+-+ >>>> >>>> >>>>>>> However, the interpreter does not currently provide us with an >>>> >>>>>>> inverse for this operation: >>>> >>>> >>>>>>> </.inv </. A >>>> >>>>>>> |domain error >>>> >>>> >>>>>>> One problem is that you cannot uniquely determine the first two >>>> >>>>>>> elements of the shape of the original array by inspecting </.'s >>>> >>>>>>> result: >>>> >>>> >>>>>>> (</. 5 7$0) -: </.7 5$0 >>>> >>>>>>> 1 >>>> >>>> >>>>>>> If its shape is provided, how might we reconstruct the original array? >>>> >>>> >>>>>>> [For the sake of simple code, it's ok to focus on numeric, rank 2 >>>> >>>>>>> arrays.] >>>> >>>> >>>>>>> -- >>>> >>>>>>> Raul >>>> >>>>>>> -------------------------------------------------------------------- >>>> >>>>>>> - >>>> >>>>>>> - For information about J forums see >>>> >>>>>>> <http://www.jsoftware.com/forums.htm> >>>> http://www.jsoftware.com/forums.htm >>>> >>>> >>>> >>>> >>>>> ---------------------------------------------------------------------- >>>> >>>>> For information about J forums see <http://www.jsoftware.com/forums.htm> >>>> http://www.jsoftware.com/forums.htm >>>> >>>> >>>>> ---------------------------------------------------------------------- >>>> >>>>> For information about J forums see <http://www.jsoftware.com/forums.htm> >>>> http://www.jsoftware.com/forums.htm >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> For information about J forums see <http://www.jsoftware.com/forums.htm> >>>> http://www.jsoftware.com/forums.htm >>>> >>>> >>>> >>>> ---------------------------------------------------------------------- >>>> >>>> For information about J forums see <http://www.jsoftware.com/forums.htm> >>>> 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
