How is "is" more useful  than  from x=: y

what is interesting is that

'abc' is "0 i.3 4 5 displays the i.3 4 5 array but the value of abc appears as : although a, b, c correspond to

(<0 1 2; 3; 4){i. 3 4 5

19 39 59


In the use of "is" in this case it appears that it


whereas 'abc' =: i. 3 4 5 gives stores the noun abc as the array but leaves a, b and c undefined

and 'a b c' =:i.3 4 5  gives 3  (4 by 5 )arrays


Don Kelly


On 2017-07-12 11:08 AM, Jose Mario Quintana 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 <rauldmil...@gmail.com> 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
<programm...@jsoftware.com> 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 <rauldmil...@gmail.com>
To: Programming forum <programm...@jsoftware.com>
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
<programm...@jsoftware.com> 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 <rauldmil...@gmail.com>
To: Programming forum <programm...@jsoftware.com>
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
<programm...@jsoftware.com> 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 <rauldmil...@gmail.com>
To: Programming forum <programm...@jsoftware.com>
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
<programm...@jsoftware.com> wrote:
pretty much any use of =:

(newrec ;reclookup) update assignwith 'database'



________________________________
From: Raul Miller <rauldmil...@gmail.com>
To: Programming forum <programm...@jsoftware.com>
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
<programm...@jsoftware.com> 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 <mwlochb...@gmail.com>
To: programm...@jsoftware.com
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

Reply via email to