Yes.

Using three arrays in J is about like using three variables in Java - often
it's just the right way of doing things.

Thanks,

-- 
Raul



On Wed, Jun 4, 2014 at 11:57 AM, Jon Hough <[email protected]> wrote:

> It's going to take me a while to understand what you've done.
> "I'd be very interested in a concrete example of how using objects
> simplifies matters."
> Well, in this case, the objects just ties three related things together
> (names and balance). Using three different arrays is a recipe for disaster,
> and also gets very confusing, at least in a Java/C++ context. Perhaps in J
> using three lists is the way to go?
>
>
> > Date: Wed, 4 Jun 2014 11:43:50 -0400
> > From: [email protected]
> > To: [email protected]
> > Subject: Re: [Jprogramming] More Object List Questions
> >
> > I suppose you could do something like this:
> >
> >    coclass 'Account'
> >    create =: verb define
> > balance =: 0
> > fname =: ''
> > lname =: ''
> > )
> >    coclass 'base'
> >    list =. 5 $ < 'Account'
> >    objs=. conew &> list
> >    objs
> > +-+-+-+-+-+
> > |1|2|3|4|5|
> > +-+-+-+-+-+
> >    conames''
> > 1         2         3         4         5         Account
> >    (<''''''),~&.>(<'create_'),&.>(":&.>objs),&.><'_'
> > +-----------+-----------+-----------+-----------+-----------+
> > |create_1_''|create_2_''|create_3_''|create_4_''|create_5_''|
> > +-----------+-----------+-----------+-----------+-----------+
> >    ".&>(<''''''),~&.>(<'create_'),&.>(":&.>objs),&.><'_'
> >
> >
> >
> >
> >
> >    balance_1_
> > 0
> >    (<'balance_'),&.>(":&.>objs),&.><'_'
> > +----------+----------+----------+----------+----------+
> > |balance_1_|balance_2_|balance_3_|balance_4_|balance_5_|
> > +----------+----------+----------+----------+----------+
> >    ".&>(<'balance_'),&.>(":&.>objs),&.><'_'
> > 0 0 0 0 0
> >
> > But this all seems rather clumsy compared to simply using arrays directly
> > rather than this vector of object names, e.g.:
> >
> >    'bals fnms lnms'=.
> >
> (5$0);('Jon';'Dick';'Harry';'Sally';'May');<'Smith';'Jones';'Black';'White';'Eye'
> >    bals
> > 0 0 0 0 0
> >    fnms
> > +---+----+-----+-----+---+
> > |Jon|Dick|Harry|Sally|May|
> > +---+----+-----+-----+---+
> >    lnms
> > +-----+-----+-----+-----+---+
> > |Smith|Jones|Black|White|Eye|
> > +-----+-----+-----+-----+---+
> >
> > I'd be very interested in a concrete example of how using objects
> > simplifies matters.
> >
> >
> >
> > On Wed, Jun 4, 2014 at 11:16 AM, Jon Hough <[email protected]> wrote:
> >
> > > I hope I'm not spamming the forum with my questions.
> > > I am still getting my head around OOP in J.
> > > My class:
> > >
> > > coclass 'Account'
> > >
> > > create =: verb define
> > > balance =: 0
> > > fname =: ''
> > > lname =: ''
> > > )
> > > It's just a dummy 'Account' class with balance, first name and last
> name.
> > > I want to create several objects in a list:
> > >
> > > list =. 5 $ < 'Account'
> > >
> > > list
> > >
> > >
> > >
> ┌───────┬───────┬───────┬───────┬───────┐│Account│Account│Account│Account│Account│└───────┴───────┴───────┴───────┴───────┘
> > >
> > > So I have my list of 5 Accounts. Now I want to be able to access their
> > > fields, functions by indexing the list.
> > > e.g. in Java if I have an array of Accounts
> > > Account[] accounts = new Account[5];
> > > I can access the fields from the array index:
> > > for(int i = 0; i<5; i++){
> > >           accounts[i].fname = "No name given";
> > > }
> > > In J,
> > > I tried the following:
> > > create__(1{list)
> > > |value error: create__
> > > |       create__(1{list)
> > > I tried to call the create function of the 2nd Account (index 1) of th
> > > elist. It seems I can't append 1{list to create__.
> > > Next I thought about making a function to do the work for me:
> > > NB. function to return y's fname...
> > > func =: verb define     acct =. y        name =: fname__acct
>  name
> > > )
> > > The above function assumes y is an instance of Account.
> > > Alas, func 1{list doesn't work.
> > > However if I do:
> > > acct =: 1{list
> > > func acct
> > > This will return the fname.
> > > But I have to explicitly define acct, which is not particularly terse.
> Is
> > > there a way to call functions from the list of objects?
> > >
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> >
> >
> >
> > --
> > Devon McCormick, CFA
> > ----------------------------------------------------------------------
> > 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