timex and timespacex are defined in J602 myutil.ijs, a patch has been made to move them to stdlib and will be available in the next base library update.
I cannot find any definition of timer in the current J602 base library. Пт, 11 июл 2014, Ian Clark написал(а): > >True, but hopefully increasingly irrelevant. > > J602 is proving a hard act to follow. In 6 months let's ask who still has > any use for it. > > >I'm not aware of timer ? > > Synonym of timex. Has been used in published J code, to the extent a > newcomer would suppose timer is the standard word, not timex. See: > http://www.jsoftware.com/help/dictionary/dmcapdot.htm > Also try googling: > site:jsoftware.com timer > site:jsoftware.com timex > I'm of a mind to ask: whyever did it change? (And do we all believe it > doesn't matter?) > > > > On Fri, Jul 11, 2014 at 9:36 AM, Ric Sherlock <[email protected]> wrote: > > > True, but hopefully increasingly irrelevant. > > I'm not aware of timer ? > > > > > > On Fri, Jul 11, 2014 at 4:59 PM, Ian Clark <[email protected]> wrote: > > > > > timespacex --not in j602. Nor timer nor timex. > > > > > > > > > On Fri, Jul 11, 2014 at 2:24 AM, Ric Sherlock <[email protected]> wrote: > > > > > > > Just a note that (6!:2 , 7!:2@]) is defined as timespacex in the > > stdlib, > > > > so > > > > not necessary to redefine if you don't want to. > > > > timespacex > > > > > > > > 6!:2 , 7!:2@] > > > > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 11, 2014 at 11:16 AM, Ian Clark <[email protected]> > > > wrote: > > > > > > > > > Hear-hear, Dan. > > > > > > > > > > To which I would only add: consider testing alternatives using ts > > > > > (time/space) like this. Test the exact phrase you plan to use. The > > > > results > > > > > can be not what you expect: > > > > > > > > > > ts =: 6!:2 , 7!:2@] > > > > > y =: i.10000 > > > > > k =: 2 > > > > > > > > > > ts '0 k} y' > > > > > 4.88281e_6 66432 > > > > > ts 'y * (y~:k)' > > > > > 2.50244e_5 82624 > > > > > ts 'y=: y * (y~:k)' > > > > > 2.62451e_5 82752 > > > > > ts 'y=: 0 k} y' NB. a "special combination" > > > > > 3.05176e_6 896 > > > > > > > > > > But if time and space are of no concern to you (e.g. because your > > data > > > > are > > > > > small enough) then does it really matter what you do if it works? > > > > > > > > > > > > > > > On Thu, Jul 10, 2014 at 4:36 PM, Dan Bron <[email protected]> wrote: > > > > > > > > > > > Ben Gorte wrote: > > > > > > > Better than the "code smell" of using amend, according to the > > > > previous > > > > > > discussion > > > > > > > > > > > > I'd say that given your use case, amend is the right way to go. > > You > > > > > have a > > > > > > list of indices and a list of values; creating arrays from those > > > inputs > > > > > is > > > > > > the very definition and purpose of Amend. > > > > > > > > > > > > In general, using Amend to construct an array for the first time > > > seems > > > > > fine > > > > > > to me. What I'd be more wary of is if you notice yourself using > > for > > > > > > intermediate transformations - particularly if the changes (the > > uses > > > of > > > > > }) > > > > > > are both frequent and small, because that's indicative of the > > "scalar > > > > > > language" way of thinking. > > > > > > > > > > > > I'd further say that if you're confident in your use of J and > > > > > > array-oriented programming, there's no particular reason to *avoid* > > > > > amend. > > > > > > I think you'll just naturally find yourself using it less. But in > > > the > > > > > > cases where it's the right tool for the job - well, then, it's the > > > > right > > > > > > tool for the job. I'd use it with no more compunction than I'd > > have > > > > > about > > > > > > # or /. or + or whatever. (But that's because I'm an egomaniac, and > > > I'm > > > > > > pretty sure of my ability to discriminate the situations } is the > > > right > > > > > > tool for the job, and when I'm using it as a crutch.) > > > > > > > > > > > > -Dan > > > > > > > > > > > > ----- Original Message --------------- > > > > > > > > > > > > Subject: Re: [Jprogramming] Tacit J and indexed replacement > > > > > > From: Ben Gorte - CITG <[email protected]> > > > > > > Date: Thu, 10 Jul 2014 14:43:01 +0000 > > > > > > To: "[email protected]" <[email protected]> > > > > > > > > > > > > > > > > > > > > > > > > > Better how? Time? Space? Compactness? > > > > > > > > > > > > Better than the "code smell" of using amend, according to the > > > previous > > > > > > discussion > > > > > > > > > > > > > > > > > > > > > > > > On 7/10/14, Ben Gorte - CITG <[email protected]> wrote: > > > > > > > I am often in situations where I want to put a lot of (image) > > > > > > measurements > > > > > > > in a grid. I know what values I have to put at which positions, > > > but I > > > > > do > > > > > > not > > > > > > > have the entire set (sensor malfunctioning). > > > > > > > > > > > > > > This simulates it. From > > > > > > > M =: ?1000 1000$5 > > > > > > > my sensor takes: > > > > > > > i=.4$.$.M > > > > > > > v=.5$.$.M > > > > > > > $i > > > > > > > 800076 2 > > > > > > > > > > > > > > So I have 800076 values v and indexes i, which I want to put in a > > > > 1000 > > > > > by > > > > > > > 1000 grid, filling up de holes with 0-s: > > > > > > > > > > > > > > N =: v (;/i) } 1000 1000$0 > > > > > > > > > > > > > > And of course: > > > > > > > N -: M > > > > > > > 1 > > > > > > > > > > > > > > Is there a better way to do this? > > > > > > > > > > > > > > Ben > > > > > > > ___________________________ > > > > > > > From: [email protected] > > > > > > > [[email protected]] on behalf of Dan Bron > > > > > > > [[email protected]] > > > > > > > Sent: Tuesday, July 08, 2014 02:23 > > > > > > > To: [email protected] > > > > > > > Subject: Re: [Jprogramming] Tacit J and indexed replacement > > > > > > > > > > > > > > Do you have examples, in practice, where you've wanted to modify > > > one > > > > > item > > > > > > > (or a sublist) from a data structure? > > > > > > > > > > > > > > Would you say those circumstances are the exception or the rule? > > > (I'm > > > > > > asking > > > > > > > because it's definitely the exception in my own experience, and > > > more > > > > > > often > > > > > > > than not a "code smell"). > > > > > > > > > > > > > > -Dan > > > > > > > > > > > > > > Please excuse typos; sent from a phone. > > > > > > > > > > > > > >> On Jul 7, 2014, at 8:14 PM, "'Pascal Jasmin' via Programming" > > > > > > >> <[email protected]> wrote: > > > > > > >> > > > > > > >> I think } (dyadic amend) is pretty essential. The obvious use > > is > > > > > > amending > > > > > > >> one (or sublist) item from a data structure. > > > > > > >> > > > > > > >> Item amend maybe a little more esoteric, but I find it easy to > > > > > > >> conceptualize, and use the "verbified" form 4 : 'x}y' as a > > > "natural" > > > > > way > > > > > > >> of implementing the example in this thread. > > > > > > >> > > > > > > >> > > > > > > >> ----- Original Message ----- > > > > > > >> From: Dan Bron <[email protected]> > > > > > > >> To: [email protected] > > > > > > >> Cc: > > > > > > >> Sent: Monday, July 7, 2014 7:42:35 PM > > > > > > >> Subject: Re: [Jprogramming] Tacit J and indexed replacement > > > > > > >> > > > > > > >> Pepe, I'm with Ian and Henry on this one: questions of > > efficiency > > > > > aside, > > > > > > >> I > > > > > > >> rarely find a call for } . The only place I really use it is > > in > > > > the > > > > > > >> expression ('A'&=)`(,:&'B') } to make scalar substitutions. > > So > > > > I'm > > > > > > >> interested in where you find uses for it. > > > > > > >> > > > > > > >> Do you have specific examples? Would you say you reach for } > > > when > > > > > > >> efficiency is a concern, even if the thought could be expressed > > > more > > > > > > >> conveniently using some other tool, or that you've found places > > > > where > > > > > } > > > > > > >> is the best way to say what you want to say? If the latter (} > > is > > > > the > > > > > > >> word > > > > > > >> you want), are there any particular characteristics that tie > > those > > > > use > > > > > > >> cases together? > > > > > > >> > > > > > > >> I personally find (bearing in mind that I'm a J hobbyist, and > > [no > > > > > > longer] > > > > > > >> a > > > > > > >> professional) that I mostly think in terms of items, and > > modifying > > > > > > >> anything below the level of an item would be quite unusual in my > > > > code, > > > > > > >> and > > > > > > >> make me suspicious. Similarly, I almost always treat all items > > > > > > >> identically, and a consistent need to treat just some items > > > > specially > > > > > > >> would make me suspicious, and I'd wonder whether I should be > > > > > structuring > > > > > > >> my data differently. > > > > > > >> > > > > > > >> With that said, I certainly (especially in my "professional > > J-ing" > > > > > days) > > > > > > >> see the benefit of } for performance. But I'm wondering if > > > you've > > > > > > >> invented or discovered generally beneficial uses of } > > unrelated > > > to > > > > > > >> performance. I'd be very interested in that, if so ('cause the > > > only > > > > > one > > > > > > >> I > > > > > > >> ever invented or discovered was, as I said, scalar > > substitution). > > > > > > >> > > > > > > >> -Dan > > > > > > >> > > > > > > >> ----- Original Message --------------- > > > > > > >> > > > > > > >> Subject: Re: [Jprogramming] Tacit J and indexed replacement > > > > > > >> From: Jose Mario Quintana <[email protected]> > > > > > > >> Date: Mon, 7 Jul 2014 19:12:55 -0400 > > > > > > >> To: Programming forum <[email protected]> > > > > > > >> > > > > > > >> Ian wrote: > > > > > > >> " > > > > > > >> And the reason for that has less to do with finding it "hard to > > > get > > > > my > > > > > > >> head > > > > > > >> round Amend" than the fact that "in-place array modification" > > is a > > > > > > >> technique that goes hand-in-hand with a scalar approach to > > > > > > >> problem-solving, > > > > > > >> which is not what J is designed to do well. > > > > > > >> " > > > > > > >> > > > > > > >> How come? In the form (x m} y), x, y and m are all allowed to > > be > > > > > > >> arrays, > > > > > > >> are they not? > > > > > > >> > > > > > > >> Ian wrote: > > > > > > >> " > > > > > > >> I still > > > > > > >> stand firmly by what Henry and I wrote in the NuVoc page on > > Amend: > > > > > > >> > > > > > > >> x m} y is used in J much less than you would think, considering > > > the > > > > > > >> importance of in-place array modification in other languages. > > > > > > >> " > > > > > > >> > > > > > > >> I also stand firm by what I wrote (no offense): > > > > > > >> > > > > > > >> "I find the forms <@:v N} ] and v N} ] extremelly useful for > > > writing > > > > > > >> tacitly." > > > > > > >> > > > > > > >> That is, when the task at hand goes beyond to dealing with one > > or > > > > two > > > > > > >> (tacit) arguments and joggling intermediate results with forks > > or > > > > > alike > > > > > > >> (and the tacit sentence (paragraph, chapter, section, book,...) > > is > > > > > meant > > > > > > >> to > > > > > > >> be efficient). > > > > > > >> > > > > > > >> :) > > > > > > >> > > > > > > >> Actually, I think, both statements (yours and mine) can stand > > > > because > > > > > > few > > > > > > >> J > > > > > > >> users are willing to go that far tacitly. > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >>> On Mon, Jul 7, 2014 at 3:22 AM, Ian Clark < > > [email protected] > > > > > > > > > > wrote: > > > > > > >>> > > > > > > >>> Thanks, guys, keep the ideas coming. There's enough been said > > in > > > > this > > > > > > >>> thread to enable me to substantially improve the NuVoc > > > presentation > > > > > of > > > > > > >>> Amend in > > > http://www.jsoftware.com/jwiki/Vocabulary/curlyrt#dyadic > > > > - > > > > > > >>> which > > > > > > >>> I > > > > > > >>> think most would agree doesn't present Amend in the most > > > appealing > > > > > > >>> light. > > > > > > >>> Perhaps unfairly so. > > > > > > >>> > > > > > > >>> In particular, I like Aai's idea: > > > > > > >>> > > > > > > >>> zero =: 0:`[`]} > > > > > > >>> 3 5 zero i.9 > > > > > > >>> 0 1 2 0 4 0 6 7 8 > > > > > > >>> > > > > > > >>> (BTW I realize this not the form he delivered it in) > > > > > > >>> > > > > > > >>> which I think ought to replace the present cumbersome NuVoc > > > > example. > > > > > > >>> > > > > > > >>> Raul asks, as usual, "what am I trying to do?" Adopting the > > role > > > of > > > > > a J > > > > > > >>> novice, I have to reply "learn J of course" - by the expedient > > of > > > > > > >>> learning > > > > > > >>> the utility and usage of J's primitives, viewed as a toolkit. > > But > > > > if > > > > > I > > > > > > >>> come > > > > > > >>> clean about my own personal motives, it's to write a good NuVoc > > > > page > > > > > > >>> which > > > > > > >>> helps a complete J novice understand Amend and what it's good > > > for - > > > > > if > > > > > > >>> anything. > > > > > > >>> > > > > > > >>> I reject the insinuation that I use Amend less than I might > > > because > > > > > I'm > > > > > > >>> not > > > > > > >>> smart enough. A J novice, experienced in another language, > > would > > > > feel > > > > > > >>> patronized by such a suggestion. Moreover she would find it > > hard > > > to > > > > > > >>> resist > > > > > > >>> the impression that J-jocks were covering up for a grave defect > > > in > > > > > the > > > > > > >>> language. And I was lying when I said I didn't have much use > > for > > > > > Amend. > > > > > > >>> But > > > > > > >>> I wanted to play devil's advocate in support of Erling's > > > criticism, > > > > > > >>> because > > > > > > >>> I believe he speaks for most newcomers trained on a "scalar" > > > > language > > > > > > >>> like > > > > > > >>> C. > > > > > > >>> > > > > > > >>> For all the splendid, creative ways of force-feeding Amend into > > > > > > >>> submission > > > > > > >>> I've seen in this thread (e.g. by using a gerund for operand > > > "m") I > > > > > > >>> still > > > > > > >>> stand firmly by what Henry and I wrote in the NuVoc page on > > > Amend: > > > > > > >>> > > > > > > >>> x m} y is used in J much less than you would think, considering > > > the > > > > > > >>> importance of in-place array modification in other languages. > > > > > > >>> > > > > > > >>> And the reason for that has less to do with finding it "hard to > > > get > > > > > my > > > > > > >>> head > > > > > > >>> round Amend" than the fact that "in-place array modification" > > is > > > a > > > > > > >>> technique that goes hand-in-hand with a scalar approach to > > > > > > >>> problem-solving, > > > > > > >>> which is not what J is designed to do well. So Raul's question > > > > "what > > > > > am > > > > > > >>> I > > > > > > >>> trying to do?" turns out to be appropriate after all, when it > > > comes > > > > > to > > > > > > >>> using Amend. Or using something else - like (*) or (#) with a > > > > Boolean > > > > > > >>> list. > > > > > > >>> > > > > > > >>> > > > > > > >>>> On Mon, Jul 7, 2014 at 4:58 AM, Raul Miller < > > > > [email protected]> > > > > > > >>>> wrote: > > > > > > >>>> > > > > > > >>>> Since it'w nagging at me (and this is still unteted code :/), > > > > here's > > > > > > >>>> what I currently think i should have said: > > > > > > >>>> amend=: (0:{::])`(1:{::])`(2:{::])}~ > > > > > > >>>> > > > > > > >>>> The trailing ~ because I need the dyad from the resulting > > verb, > > > > and > > > > > > >>>> the trailing ] on each because those verbs need to ignore one > > of > > > > the > > > > > > >>>> resulting arguments. > > > > > > >>>> > > > > > > >>>> Sadly, my fingers (and "quick memory") keep forgetting this. > > > > > > >>>> > > > > > > >>>> Thanks, > > > > > > >>>> > > > > > > >>>> -- > > > > > > >>>> Raul > > > > > > >>>> > > > > > > >>>>> On 7/6/14, Raul Miller <[email protected]> wrote: > > > > > > >>>>> Meh, no, that won't work. > > > > > > >>>>> > > > > > > >>>>> Stick with Jose's version. > > > > > > >>>>> > > > > > > >>>>> (I also don't have the feature enabled which lets me cancel > > > > sending > > > > > > an > > > > > > >>>>> email after "sending" it.) > > > > > > >>>>> > > > > > > >>>>> I'll just go do some "practical" work now... > > > > > > >>>>> > > > > > > >>>>> Sorry for the noise. > > > > > > >>>>> > > > > > > >>>>> -- > > > > > > >>>>> Raul > > > > > > >>>>> > > > > > > >>>>>> On 7/6/14, Raul Miller <[email protected]> wrote: > > > > > > >>>>>> Oops, yes. Sorry about that. > > > > > > >>>>>> > > > > > > >>>>>> I should have said: > > > > > > >>>>>> amend=: (0:{::)`(1:{::)`(2:{::)}~ > > > > > > >>>>>> > > > > > > >>>>>> (I'm working right now from a machine where J doesn't run, > > > and I > > > > > > >>>>>> forget details when I don't test my code.) > > > > > > >>>>>> > > > > > > >>>>>> Thanks, > > > > > > >>>>>> > > > > > > >>>>>> -- > > > > > > >>>>>> Raul > > > > > > >>>>>> > > > > > > >>>>>>> On 7/6/14, Jose Mario Quintana < > > > [email protected]> > > > > > > >>>>>>> wrote: > > > > > > >>>>>>> Raul wrote: > > > > > > >>>>>>> " > > > > > > >>>>>>> For example: > > > > > > >>>>>>> amend=: 0&{::`(1&{::)`(2&{::)} > > > > > > >>>>>>> amend 0;2 3 5;7#9 > > > > > > >>>>>>> 9 9 0 0 9 0 9 > > > > > > >>>>>>> " > > > > > > >>>>>>> > > > > > > >>>>>>> Actually, > > > > > > >>>>>>> > > > > > > >>>>>>> JVERSION > > > > > > >>>>>>> Installer: j602a_win.exe > > > > > > >>>>>>> Engine: j701/2011-01-10/11:25 > > > > > > >>>>>>> Library: 6.02.023 > > > > > > >>>>>>> > > > > > > >>>>>>> amend=: 0&{::`(1&{::)`(2&{::)} > > > > > > >>>>>>> amend 0;2 3 5;7#9 > > > > > > >>>>>>> |rank error: amend > > > > > > >>>>>>> | amend 0;2 3 5;7#9 > > > > > > >>>>>>> |[-3] > > > > > > >>>>>>> > > > > > > >>>>>>> However, > > > > > > >>>>>>> > > > > > > >>>>>>> amend=. _: 0&{::@]`(1&{::@])`(2&{::@])} ] > > > > > > >>>>>>> amend 0;2 3 5;7#9 > > > > > > >>>>>>> 9 9 0 0 9 0 9 > > > > > > >>>>>>> > > > > > > >>>>>>> I use a slight variation of this verb occasionally; yet, I > > > find > > > > > the > > > > > > >>>>>>> forms > > > > > > >>>>>>> <@:v N} ] and v N} ] extremelly useful for writing tacitly > > > > (and I > > > > > > >>> write > > > > > > >>>>>>> tacitly all the time). > > > > > > >>>>>>> > > > > > > >>>>>>> > > > > > > >>>>>>> > > > > > > >>>>>>> On Sun, Jul 6, 2014 at 6:42 AM, Raul Miller < > > > > > [email protected] > > > > > > > > > > > > > >>>>>>> wrote: > > > > > > >>>>>>> > > > > > > >>>>>>>> I would agree that amend is seldom useful in much the same > > > way > > > > > > that > > > > > > >>>>>>>> computers are seldom useful. That is: it depends on what > > you > > > > > mean > > > > > > >>>>>>>> by > > > > > > >>>>>>>> "seldom" (and, for that matter, "useful"). > > > > > > >>>>>>>> > > > > > > >>>>>>>> Generally speaking, } is one of the less common characters > > > > that > > > > > I > > > > > > >>> use > > > > > > >>>>>>>> when I write in J, but I do use it. > > > > > > >>>>>>>> > > > > > > >>>>>>>> Also, in addition to the very fine 0:`[`]} which behaves > > > > > something > > > > > > >>>> like > > > > > > >>>>>>>> this: > > > > > > >>>>>>>> > > > > > > >>>>>>>> 2 3 5 0:`[`]} 7#9 > > > > > > >>>>>>>> 9 9 0 0 9 0 9 > > > > > > >>>>>>>> > > > > > > >>>>>>>> (Aside: note that in the above expression 2 3 5 is a word, > > > and > > > > > 0: > > > > > > >>> is a > > > > > > >>>>>>>> separate word. Try ;:'2 3 5 0:`[`]} 7#9' if you want > > proof.) > > > > > > >>>>>>>> > > > > > > >>>>>>>> ... in addition to that approach, you can also arrange so > > > that > > > > > all > > > > > > >>>>>>>> arguments are given in an argument list, if you use > > > > > > >>>>>>>> 0&{::`(1&{::)`(2&{::)} > > > > > > >>>>>>>> > > > > > > >>>>>>>> For example: > > > > > > >>>>>>>> amend=: 0&{::`(1&{::)`(2&{::)} > > > > > > >>>>>>>> amend 0;2 3 5;7#9 > > > > > > >>>>>>>> 9 9 0 0 9 0 9 > > > > > > >>>>>>>> > > > > > > >>>>>>>> But, as with everything, whether this is a good thing or > > not > > > > > > >>>>>>>> depends > > > > > > >>>>>>>> on what you are trying to do... > > > > > > >>>>>>>> > > > > > > >>>>>>>> Which leads back to the question: what are you trying to > > do? > > > > > > >>>>>>>> > > > > > > >>>>>>>> Thanks, > > > > > > >>>>>>>> > > > > > > >>>>>>>> -- > > > > > > >>>>>>>> Raul > > > > > > >>>>>>>> > > > > > > >>>>>>>>> On 7/6/14, Ric Sherlock <[email protected]> wrote: > > > > > > >>>>>>>>> I don't agree that Amend is seldom useful. I do agree > > that > > > it > > > > > > >>> isn't > > > > > > >>>>>>>>> the > > > > > > >>>>>>>>> easiest thing to get your head around (perhaps why you > > have > > > > > found > > > > > > >>>>>>>>> other > > > > > > >>>>>>>>> ways to getting stuff done). > > > > > > >>>>>>>>> > > > > > > >>>>>>>>> Aai has shown how to tacitly use Amend so it seems that > > 13 > > > : > > > > is > > > > > > >>> not > > > > > > >>>>>>>>> smart > > > > > > >>>>>>>>> enough to give you a tacit equivalent. I suspect the > > reason > > > > > Amend > > > > > > >>>> has > > > > > > >>>>>>>> been > > > > > > >>>>>>>>> defined as an adverb is that it requires 3 arguments: the > > > > array > > > > > > to > > > > > > >>>>>>>>> amend, > > > > > > >>>>>>>>> the indicies to amend, the replacement data. Compare that > > > to > > > > > From > > > > > > >>>>>>>>> which > > > > > > >>>>>>>>> only requires 2 bits of info (the array, the indicies). > > > > > > >>>>>>>>> > > > > > > >>>>>>>>> > > > > > > >>>>>>>>> > > > > > > >>>>>>>>> On Sun, Jul 6, 2014 at 7:53 PM, Ian Clark < > > > > > [email protected] > > > > > > > > > > > > > >>>>>>>>> wrote: > > > > > > >>>>>>>>> > > > > > > >>>>>>>>>> I think Erling is quite right, if you take what he says > > > > > > >>> literally: > > > > > > >>>>>>>> "Amend > > > > > > >>>>>>>>>> is seldom useful for indexed replacement when you write > > > > tacit > > > > > > J". > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> I'd go further and say "Amend is seldom useful." > > Period. I > > > > > write > > > > > > >>> a > > > > > > >>>>>>>>>> lot > > > > > > >>>>>>>> of > > > > > > >>>>>>>>>> J > > > > > > >>>>>>>>>> code and I hardly ever use it. > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> To someone coming from C (say), this cries out for > > > > > explanation. > > > > > > >>> In > > > > > > >>>>>>>>>> C, > > > > > > >>>>>>>> just > > > > > > >>>>>>>>>> about everything is done by keyhole surgery, i.e. by > > > > tinkering > > > > > > >>> with > > > > > > >>>>>>>>>> whatever happens to be at the end of a pointer (read: > > > > index). > > > > > In > > > > > > >>> J, > > > > > > >>>>>>>>>> just > > > > > > >>>>>>>>>> about nothing is done that way. > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> Let me give an example. Suppose I want to write a verb > > to > > > > zero > > > > > > >>> the > > > > > > >>>>>>>>>> x'th > > > > > > >>>>>>>>>> element of a list y ... > > > > > > >>>>>>>>>> I can easily write it as an explicit verb: > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> zero=: 4 : '0 x} y' > > > > > > >>>>>>>>>> 3 zero i.6 > > > > > > >>>>>>>>>> 0 1 2 0 4 5 > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> But "13 :" refuses to give me an equivalent tacit verb > > ... > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> 13 : '0 x}y' > > > > > > >>>>>>>>>> 4 : '0 x}y' > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> Is this just a shortcoming of "13 :" ? Does anyone know > > a > > > > > "nice" > > > > > > >>>>>>>>>> tacit > > > > > > >>>>>>>>>> equivalent? I don't. > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> Contrast this with what happens if I switch round 0 and > > x > > > > > > >>> (...which > > > > > > >>>>>>>> gives > > > > > > >>>>>>>>>> me a verb to replace the first element of a list y with > > > x). > > > > In > > > > > > >>> this > > > > > > >>>>>>>>>> case > > > > > > >>>>>>>>>> "13 :" does deliver me a nice simple tacit equivalent > > ... > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> 13 : 'x 0}y' > > > > > > >>>>>>>>>> 0} > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> So why doesn't 13 : '0 x}y' do something equally as > > > nice? > > > > > It's > > > > > > >>>> all > > > > > > >>>>>>>>>> explained in > > > > > > >>>>>>>>>> > > http://www.jsoftware.com/jwiki/Vocabulary/curlyrt#dyadic > > > > > > >>>>>>>>>> . > > > > > > >>>>>>>>>> But > > > > > > >>>>>>>>>> that doesn't really explain to a newcomer why Amend was > > > > > designed > > > > > > >>> as > > > > > > >>>>>>>>>> an > > > > > > >>>>>>>>>> adverb: > > > > > > >>>>>>>>>> x m} y > > > > > > >>>>>>>>>> with (index) m as an *operand*, not an *argument*. > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> Yes, I can write a tacit verb to zero the x'th element > > of > > > > > list y > > > > > > >>>> ... > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> zero2=: 13 : 'y * y~:x' > > > > > > >>>>>>>>>> 3 zero2 i.6 > > > > > > >>>>>>>>>> 0 1 2 0 4 5 > > > > > > >>>>>>>>>> zero2 > > > > > > >>>>>>>>>> ] * ~: > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> ... but not by using Amend, which is quite simply not > > > useful > > > > > in > > > > > > >>>> that > > > > > > >>>>>>>> role. > > > > > > >>>>>>>>>> Though I'm not claiming it can't be done - in fact > > > there's a > > > > > > >>> worked > > > > > > >>>>>>>>>> example > > > > > > >>>>>>>>>> in: > > > > http://www.jsoftware.com/jwiki/Vocabulary/curlyrt#dyadic > > > > > > >>> under > > > > > > >>>>>>>> "More > > > > > > >>>>>>>>>> Information". But I wouldn't call it "nice". > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> This illustrates the J approach to programming: > > > > > > >>>>>>>>>> http://www.jsoftware.com/jwiki/Vocabulary/Loopless -and > > > how > > > > > it > > > > > > >>>>>>>> contrasts > > > > > > >>>>>>>>>> with the C approach. Henry would explain it far better > > > than > > > > I > > > > > > >>> can, > > > > > > >>>>>>>>>> but > > > > > > >>>>>>>>>> he's > > > > > > >>>>>>>>>> busy. > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> IanClark > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>> On Sat, Jul 5, 2014 at 8:59 PM, Erling Hellenäs < > > > > > > >>>>>>>> [email protected]> > > > > > > >>>>>>>>>> wrote: > > > > > > >>>>>>>>>> > > > > > > >>>>>>>>>>> Hi all ! > > > > > > >>>>>>>>>>> > > > > > > >>>>>>>>>>> When you write tacit code, the index m used by Amend, > > > > syntax > > > > > > >>>>>>>> description > > > > > > >>>>>>>>>>> x m} y, is a constant? > > > > > > >>>>>>>>>>> Normally you have a variable you want to use for > > > indexing? > > > > > This > > > > > > >>>>>>>>>>> means > > > > > > >>>>>>>>>>> Amend is seldom useful for indexed replacement when you > > > > write > > > > > > >>>>>>>>>>> tacit > > > > > > >>>>>>>>>>> J? > > > > > > >>>>>>>>>>> Are there any descriptions of nice ways to do indexed > > > > > > >>> replacement > > > > > > >>>>>>>>>>> in > > > > > > >>>>>>>>>> tacit > > > > > > >>>>>>>>>>> J? > > > > > > >>>>>>>>>>> As with Amend, the result has to be a new variable, of > > > > > course. > > > > > > >>>>>>>>>>> > > > > > > >>>>>>>>>>> Cheers, > > > > > > >>>>>>>>>>> > > > > > > >>>>>>>>>>> Erling Hellenäs > > > > > > >>>> > > > > > > > ---------------------------------------------------------------------- > > > > > > >>>>>>>>>>> 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 -- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
