If the atoms of x, y and dy are all numbers (or tuples thereofª),
you can use a 3(or moreª)×(whatever common shape they have) array.
Index into them along the correct axes, and you’ll get
back (or modify) a triplet (or triplets) (again, or moreª).

And updating ought to be done in place as much as possible.
You don’t do updating most of the time, but when you need to,
do it in place if at all possible.
You’re guaranteed to work in place if you immediately assign
back to the name of the structure you amend, for example.
Also, take a look at the special combinations.
Personally, I avoid boxing as much as possible.

Then again, that’s just my thoughts and I’m far from
as experienced as the average person on this list, I guess.

Am 06.12.20 um 21:13 schrieb emacstheviking:
> What's the conventional wisdom / best practice on defining data structures
> for an application?
> 
> Given there is no explicit keyword/operator support like C (typdef,
> struct)  is it merely a case of convention and using boxed structures. I
> have read several operators that can modify structures both as new aliased
> copies and in-place modifications but I do not have the experience with J
> to know what's efficient at run time in time / memory etc.
> 
> My specific use case is that of a vertically scrolling star field... I
> intend to recreate and hopeful extend the tiny little game I wrote but
> never finished, screenshot here:
> http://seancharles.xyz/posts/2019-10-06-all-at-c.html
> 
> In that I had a struct that had the x, y, dy and type values but it seems
> to me that given that J is all about arrays, it might be more efficient
> using parallel arrays i.e. x array, y array, dy array etc.
> 
> Also, given that the state is being updated in a tight event loop using the
> time differential between frames to calculate the step motion (i.e. CPU
> speed independently), what are your thoughts on immutable updates producing
> new arrays or updating in place ?
> 
> Thanks,
> Sean.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> 

-- 
----------------------
mail written using NEO
neo-layout.org

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to