I'd probably call s0 "Firstchar" (its actually the first non-blank
character but you have to allow a certain amount of ambiguity in naming
conventions).

I'd also probably call r0 "RelevantShadow" (since it's what's going to be
rotated left to catch the non-extraneous spaces).

Thanks,

-- 
Raul





On Mon, Jul 14, 2014 at 12:25 PM, Ian Clark <[email protected]> wrote:

> Thanks Linda. Yes, there is a better explicit version than:
>    f=: 13 :'(#~[:(+. 1 |. (> </\)) '' ''~:])y'
>
> Addon: tte makes heavy weather of deb, but handles deb2 a lot better, now
> that you've replaced @ by a capped fork, since it breaks down the tacit
> phrase into intermediate pronouns only, avoiding intermediate proverbs.
> These work-pronouns can then be renamed meaningfully.
>
> Here's my "explication" (=deconstruction?) of your deb2 ...
>
>    require 'debug/tte'
>    deb2 tte
> 3 : 0
>     NB. (deb2): #~ ([: (+. (1 |. (> </\))) ' ' ~: ])
> ] t0=: (' ') ~: y    NB. fork: ' ' ~: ]
> ] s0=: </\ t0    NB. main: h-: ,'\'
> ] r0=: t0 > s0    NB. hook: > </\
> ] q0=: 1 |. r0    NB. fork: 1 |. (> ((</)\))
> ] p0=: t0 +. q0    NB. hook: +. (1 |. (> </\))
>         NB. atco: (+. (1 |. (> </\)))@:(' ' ~: ])
> ] z0=: p0 # y    NB. swap: #~
>         NB. hook: #~ ([: (+. (1 |. (> </\))) ' ' ~: ])
> :
> NB. (dyad irrelevant, so I have omitted it here)
> )
>
> Now all I have to do is set up a test value of y and re-execute lines
> one-by-one ...
>
>    y=: ' able   baker  '
> ] t0=: (' ') ~: y    NB. Notspace
> 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0
> ] s0=: </\ t0
> 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
> ] r0=: t0 > s0
> 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0
> ] q0=: 1 |. r0    NB. LeftshiftedNotspace
> 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0
> ] p0=: t0 +. q0    NB. Notspace or LeftshiftedNotspace
> 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0
> ] z0=: p0 # y    NB. KeepOnes
> able baker
>
> I've replaced the comments with suggested names on the basis of what each
> line appears to do. I haven't bothered with names for s0 and r0 because the
> 3 lines concerned seem to be an elaborate way of turning rotate-left into
> shift-left, which could have been done using (!.) as shown in
>  http://www.jsoftware.com/jwiki/Vocabulary/bardot#monadicfit
>
> This lets me rewrite (deb2 tte) as follows:
>
> debX=: monad define
> Notspace=. (' ') ~: y
> s0=. </\ Notspace
> r0=. Notspace > s0
> LeftshiftedNotspace=. 1 |. r0
> or=. +.
> Keep=. Notspace or LeftshiftedNotspace
> Keep # y
> )
>
> ... which is more in the spirit of
> http://www.jsoftware.com/jwiki/Vocabulary/Unreadability .
>
> As you see, the above is a largely automatic procedure well within the
> capability of a typical beginner.
>
> IanClark
>
>
>
> On Mon, Jul 14, 2014 at 7:18 AM, Linda Alvord <[email protected]>
> wrote:
>
> > Here's deb without @  and  &
> >
> >     deb
> > #~ (+. (1: |. (> </\)))@(' '&~:)
> >    deb2
> > #~ ([: (+. (1 |. (> </\))) ' ' ~: ])
> >
> > However it seems as though there should be a better explicit version
> than:
> >    f=: 13 :'(#~[:(+. 1 |. (> </\)) '' ''~:])y'
> >
> > Linda
> >
> >
> > -----Original Message-----
> > From: [email protected] [mailto:
> > [email protected]] On Behalf Of Linda Alvord
> > Sent: Sunday, July 13, 2014 11:43 PM
> > To: [email protected]
> > Subject: Re: [Jprogramming] Design goals readability and writeability?
> >
> > I enjoyed your article:
> >
> > <"1 toupper"0>"0;:'alpha beta gamma'
> > ┌─────┬─────┬─────┐
> > │ALPHA│BETA │GAMMA│
> > └─────┴─────┴─────┘
> >
> > Linda
> >
> > -----Original Message-----
> > From: [email protected] [mailto:
> > [email protected]] On Behalf Of Ian Clark
> > Sent: Sunday, July 13, 2014 9:40 PM
> > To: [email protected]
> > Subject: Re: [Jprogramming] Design goals readability and writeability?
> >
> > "The alleged unreadability of J - and what to do about it"
> >    http://www.jsoftware.com/jwiki/Vocabulary/Unreadability
> >
> >
> > On Sun, Jul 13, 2014 at 11:43 PM, Don Kelly <[email protected]> wrote:
> >
> > > Absolutely!!
> > > J suffers from the same problem as its precurser APL- in spades.. One
> can
> > > write very terse code because of its power. Often, 6 moths later the
> > > original writer has to spend time interpreting what was written. I have
> > > come up with some terse code and , more often terse code from others-
> all
> > > of which has been put in a utility script wrapped in  comments so that
> > when
> > > I want to use it-I do have such guidance. This is something one has to
> do
> > > to a great extent with any programming language. It is even more
> > important
> > > with J tacit.
> > >
> > > Don Kelly
> > >
> > >
> > > On 12/07/2014 11:44 AM, Don Guinn wrote:
> > >
> > >> Readability depends on a person's background. I can't read Chinese.
> Does
> > >> that mean it's not a readable language?
> > >>
> > >> When writing a program or a document one must assume some level of
> > >> knowledge of the reader. J tends to assume readers have a greater
> > >> knowledge
> > >> of mathematics than most other programming languages require.
> > >>
> > >> But readability is a real problem. What is usually missing from many
> > >> programs, especially J tacit, is the intent of something. Say I see
> > >> something like this:
> > >>
> > >>     < @ (({. + i.@{:)@[ { ] )
> > >>
> > >> It would certainly help to have some idea what this is supposed to do.
> > >> What
> > >> its arguments are and what it returns. Documentation really helps.
> > >>
> > >> But J expressions can be intimidating. It has always bothered me that
> I
> > >> could attack a FORTRAN program spanning several pages comfortably. But
> > a J
> > >> program of just a few lines which do exactly the same thing is hard
> for
> > me
> > >> to get into.
> > >>
> > >>
> > >> On Sat, Jul 12, 2014 at 12:23 PM, Erling Hellenäs <
> > >> [email protected]>
> > >> wrote:
> > >>
> > >>  Hi all !
> > >>>
> > >>> Yes, maybe we should all be concerned about writing readable code
> > instead
> > >>> of the shortest and most cryptic code? Maybe we should also write
> > >>> writeable
> > >>> code? Find a way to write that allows us to get the expressions right
> > the
> > >>> first time?
> > >>> J is more of a notation than a language? The value of a notation is
> > >>> determined by clarity, but also readability? Maybe readability and
> > >>> writeability, in the sense I explained above, should get higher
> > priority
> > >>> as
> > >>> design goals for our future J?
> > >>>
> > >>> Cheers,
> > >>>
> > >>> Erling Hellenäs
> > >>>
> > >>>
> > >>>
> > >>> On 2014-07-12 07:40, Raul Miller wrote:
> > >>>
> > >>>  I would not generalize to higher rank arrays without a model of why
> > I'd
> > >>>> be
> > >>>> using them.
> > >>>>
> > >>>> In other words, v=: {"_1 |:~&0 2 is probably good enough.
> > >>>>
> > >>>> There are some interesting contradictions here - while one needs to
> be
> > >>>> comfortable thinking mathematically to get decent performance out
> of a
> > >>>> system, usually what we are building is a mix of instant and delayed
> > >>>> gratification and we usually assume our audience has no direct
> > interest
> > >>>> in
> > >>>> the math we are performing (indirect interest, yes - sometimes).
> > >>>>
> > >>>> Often I think we go overboard, and we should throw back in some
> > exposure
> > >>>> to
> > >>>> some of the more robust concepts (especially for the kids, so they
> > have
> > >>>> something interesting to play with). But professional adults tend to
> > be
> > >>>> under a lot of time pressure, and as a result their needs often seem
> > to
> > >>>> be
> > >>>> a mix of the very basic and the childish.
> > >>>>
> > >>>> Meanwhile, it seems like anything worthwhile takes time and effort.
> > >>>>
> > >>>> Anyways, professional software design often centers around use cases
> > and
> > >>>> similar models which are aimed at extracting the important concepts
> > >>>> about
> > >>>> what people need to get done and how they want to work. And that
> kind
> > of
> > >>>> information is what you need if you are going to properly generalize
> > >>>> application code.
> > >>>>
> > >>>> Thanks,
> > >>>>
> > >>>>
> > >>>>
> >  ----------------------------------------------------------------------
> > >>> 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
> >
> > ----------------------------------------------------------------------
> > 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

Reply via email to