I don't understand the term 'object'.

Does that mean 'numbered locale'?  If so, then a test for objectness would be

1 = 18!:0


Henry Rich

On 7/9/2018 9:41 PM, 'Jon Hough' via Programming wrote:
I want to test if a given member variable of an object is  primitive  (e.g. one 
of the J datatypes - literal, integer etc etc) or an object.

coclass 'MyClass'

create=: 3 : 0
m=: 'something'
)


Here is one method:

myClass =: '' conew 'MyClass'
  a: -:  {. (copath ::( a:"_) m__myClass) -. <, 'z' NB. return 1 if primitive, 
0 if an object.

This works, except if the member is defined in a parent class.

coclass 'MyOtherClass'
coinsert 'MyClass'

create=: 3 : 0
create_MyClass_ f. ''
''
)


myOtherClass =: '' conew 'MyOtherClass'
  a: -:  {. (copath ::( a:"_) m__myOtherClass) -. <, 'z'


the above returns 0, but member is a primitive member of the MyOtherClass 
instance. Ideally this
should return 1 in this case, since m is still a primitive member of 
MyOtherClass.

Any better way to test for primitive members?

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


---
This email has been checked for viruses by AVG.
https://www.avg.com

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

Reply via email to