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
