No, I am asking *how* it is useful. Thanks,
-- Raul On Wed, Jul 12, 2017 at 2:08 PM, Jose Mario Quintana <[email protected]> wrote: > Maybe I am misunderstanding... Are you trying to imply that one cannot > find a verb such as is=: 4 :'(x)=:y' useful? > > > On Tue, Jul 11, 2017 at 8:37 PM, Raul Miller <[email protected]> wrote: > >> Ok, so, just to be clear - this has nothing to do with default assignment? >> >> That said, it's probably intentional that there's no verb form of =: >> (or =.). For example, given >> >> is=: 4 :'(x)=:y' >> >> consider: >> >> 'abc' is"0 i.3 4 5 >> >> Questions: >> >> (1) what is >> >> a+b+c >> >> (2) how is this useful? >> >> Thanks, >> >> -- >> Raul >> >> >> On Tue, Jul 11, 2017 at 12:53 PM, 'Pascal Jasmin' via Programming >> <[email protected]> wrote: >> > Don't fixate on just Henry's syntax or default values. >> > >> > The basic "delegated function assignment" is: >> > >> > assign =: 4 : '(x) =: y' >> > >> > its a verb, that can be composed with others (or rewritten for a >> different/enhanced delegated assignment function) in a wide variety of ways >> that include all of the discussed applications in this thread. >> > >> > problem 1: can only use =: not =. >> > >> > problem 2: performance issue in any "delegated function assignment" >> that wouldn't (or might not) exist if there were verb (and adverb forms I >> proposed) forms of copula. >> > I've just repeated previous statements entirely here. Perhaps the >> mistake I made was not providing an ideal example to your first request. >> > >> > ________________________________ >> > From: Raul Miller <[email protected]> >> > To: Programming forum <[email protected]> >> > Sent: Tuesday, July 11, 2017 12:37 PM >> > Subject: Re: [Jprogramming] Request for comments: multiple assignment >> > >> > >> > >> > I do not see yet that it would be even possible to do that in a way >> > that takes advantage of in place assignment optimization. The default >> > mechanism only kicks in when no value was being assigned, and it seems >> > to me that cases where you can meaningly have "no value was being >> > assigned so we need a default" already have complexity which defeats >> > the in place assignment optimization. >> > >> > Worse, though, is that this does not seem like a common case (which >> > suggests that it's best not to optimize for it). >> > >> > That said, if we're not going to be dealing with code examples (and I >> > certainly cannot think of any - the requirements seem contradictory), >> > and we are going to continue discussing this, perhaps we should move >> > to the chat forum? >> > >> > That said, here's a hypothetical non-example based on Henry's initial >> post: >> > >> > 'L(0)'=: L,y >> > >> > For that default value (0) to be relevant, the expression (L,y) must >> > be undefined. But if y were undefined the statement would fail with an >> > error. And if y were defined and the statement does not fail with an >> > error, then that default of (0) can never be used. >> > >> > Which takes me back to my previous thought which was that taking >> > advantage of in place optimizations for this default seems impossible. >> > >> > So... once again... what are you talking about? >> > >> > Thanks, >> > >> > -- >> > Raul >> > >> > >> > On Tue, Jul 11, 2017 at 10:48 AM, 'Pascal Jasmin' via Programming >> > <[email protected]> wrote: >> >> >> >> >> >> >> >> assignment within a delegated function includes default values, >> handling unassigned names, and other applications. Although update can be a >> "delegated assigment function" append is more relevant to default values. >> >> >> >> Even if there are just a few "general applications" to delegated >> assignment, "other applications" count. I mentioned append rather than >> update as a better example of using default values, but update is still a >> delegatable assignment function. Instead of default values, it uses the "C >> pattern" u}= 'name' ... another general feature mentioned in this thread. >> >> >> >> >> >> ________________________________ >> >> From: Raul Miller <[email protected]> >> >> To: Programming forum <[email protected]> >> >> Sent: Tuesday, July 11, 2017 10:17 AM >> >> Subject: Re: [Jprogramming] Request for comments: multiple assignment >> >> >> >> >> >> >> >> In every definition of default assignment that I have seen, update is >> >> not supported, does not make sense, and is not implemented. >> >> >> >> So that is what I am asking about: How does it make sense to optimize >> >> for the impossible case? >> >> >> >> Thanks, >> >> >> >> -- >> >> Raul >> >> >> >> >> >> On Tue, Jul 11, 2017 at 10:07 AM, 'Pascal Jasmin' via Programming >> >> <[email protected]> wrote: >> >>> fields can often have default values other than null... relevant more >> to append than update. >> >>> >> >>> But this is more of a comment on "assignment within a delegated >> function" family of processes, which is what =:: and =.. essentially >> propose. >> >>> >> >>> For a different proposal of a "string dsl" for default values and type >> restrictions/coercions, than what Henry is hinting towards: >> >>> >> >>> https://github.com/Pascal-J/type-system-j >> >>> >> >>> Though it avoids using an assignment function. >> >>> >> >>> >> >>> ________________________________ >> >>> From: Raul Miller <[email protected]> >> >>> To: Programming forum <[email protected]> >> >>> Sent: Tuesday, July 11, 2017 9:46 AM >> >>> Subject: Re: [Jprogramming] Request for comments: multiple assignment >> >>> >> >>> >> >>> >> >>> How can update assignment be relevant when assigning default values? >> >>> >> >>> Thanks, >> >>> >> >>> -- >> >>> Raul >> >>> >> >>> >> >>> On Tue, Jul 11, 2017 at 9:43 AM, 'Pascal Jasmin' via Programming >> >>> <[email protected]> wrote: >> >>>> pretty much any use of =: >> >>>> >> >>>> (newrec ;reclookup) update assignwith 'database' >> >>>> >> >>>> >> >>>> >> >>>> ________________________________ >> >>>> From: Raul Miller <[email protected]> >> >>>> To: Programming forum <[email protected]> >> >>>> Sent: Tuesday, July 11, 2017 9:36 AM >> >>>> Subject: Re: [Jprogramming] Request for comments: multiple assignment >> >>>> >> >>>> >> >>>> >> >>>> In what sort of cases are in-place optimizations a relevant issue for >> >>>> assigning default values? >> >>>> >> >>>> Thanks, >> >>>> >> >>>> -- >> >>>> Raul >> >>>> >> >>>> >> >>>> On Tue, Jul 11, 2017 at 9:06 AM, 'Pascal Jasmin' via Programming >> >>>> <[email protected]> wrote: >> >>>>> The way I handle that, >> >>>>> >> >>>>> assignwithC >> >>>>> 2 : 0 >> >>>>> (y) =: u (y~ [ ]) :: (n"_) 1 >> >>>>> : >> >>>>> (y) =: x u (y~ [ ]) :: (n"_) 1 >> >>>>> ) >> >>>>> >> >>>>> >> >>>>> I think the call for =:: and =.. is based on 2 things. >> >>>>> >> >>>>> 1. Although defaults and "ORvals"/unassigned default values can be >> handled easily enough through J expressions, for 805 anyway, it lost any >> inplace optimizations. >> >>>>> >> >>>>> 2. it only works for =: and not =. >> >>>>> >> >>>>> >> >>>>> >> >>>>> ________________________________ >> >>>>> From: Marshall Lochbaum <[email protected]> >> >>>>> To: [email protected] >> >>>>> Sent: Tuesday, July 11, 2017 4:02 AM >> >>>>> Subject: Re: [Jprogramming] Request for comments: multiple assignment >> >>>>> >> >>>>> >> >>>>> Does this scheme support easily assigning a default value to a >> variable, >> >>>>> that is, assigning only if the name is currently unused? This is a >> >>>>> common case for me and I'm just now realizing that the "default" >> option >> >>>>> doesn't really do that. >> >>>>> >> >>>>> See https://github.com/mlochbaum/JSound/blob/master/wav.ijs for an >> >>>>> example, where I'm forced to write an awkward line of code to set the >> >>>>> default format to 16-bit 44.1kHz. This seems easy enough to support >> with >> >>>>> another trailing character on the name, like ^ or ?. So I would write >> >>>>> 'FMT? F?' =: 1 16;44100 >> >>>>> instead of the current version. >> >>>>> >> >>>>> On a side note, Earl Grey is a good language to look at if you are >> >>>>> interested in more sophisticated assignment schemes. I don't know if >> >>>>> much of it is relevant to J, but it's very cool to see what can >> happen >> >>>>> if you build a language to handle pattern matching from the bottom >> up. >> >>>>> See http://www.earl-grey.io/doc.html, up to the section on pattern >> >>>>> matching. >> >>>>> >> >>>>> Marshall >> >>>>> >> >>>>> On Tue, Jul 04, 2017 at 01:40:52AM -0400, HenryRich wrote: >> >>>>>> Here is a feature that I have wanted for a long time: >> >>>>>> >> >>>>>> http://code.jsoftware.com/wiki/System/Interpreter/Requests# >> Expanded_Multiple_Assignment >> >>>>>> >> >>>>>> It attempts to solve the problem of moving verb arguments into >> >>>>>> variable-names. Allows defaults and multilevel arguments. I will >> implement >> >>>>>> this within a month or so, so get your comments in ASAP. >> >>>>>> >> >>>>>> Henry Rich >> >>>>>> >> >>>>>> --- >> >>>>>> This email has been checked for viruses by AVG. >> >>>>>> http://www.avg.com >> >>>>>> >> >>>>>> ------------------------------------------------------------ >> ---------- >> >>>>>> For information about J forums see http://www.jsoftware.com/forum >> s.htm >> > >> >> >> >>> >> >>>> >> >>>>> >> >>>>> ------------------------------------------------------------ >> ---------- >> >>>>> For information about J forums see http://www.jsoftware.com/forum >> s.htm >> >>>>> ------------------------------------------------------------ >> ---------- >> >>>>> For information about J forums see http://www.jsoftware.com/forum >> s.htm >> >>>> ------------------------------------------------------------ >> ---------- >> >>>> For information about J forums see http://www.jsoftware.com/forum >> s.htm >> >>>> ------------------------------------------------------------ >> ---------- >> >>>> For information about J forums see http://www.jsoftware.com/forum >> s.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 >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
