[comp.sys.handhelds] overloading operators

bagchi@eecs.umich.edu (Ranjan Bagchi) (11/26/90)

	Is there any way I can take a function, such as '+', and
modify it to apply to data-structures (Tagged, I suppose) which it
didn't previously?
	I've been screwing around with simulating matrices with nested
lists, and would be much happier if I could multiply 'em with 'x', as
opposed to calling a function called 'mult'.
 
	Ah, well...

 	-rj
--
--------------------------------------------------------------------------------
Ranjan Bagchi - At Large.  Well Kinda.  |  Neat trick of the day:
bagchi@[eecs                            |  while (1)
        caen,                           |    plaid &
	math.lsa].umich.edu     	|  end
--------------------------------------------------------------------------------

wscott@en.ecn.purdue.edu (Wayne H Scott) (11/26/90)

In article <BAGCHI.90Nov25154728@snarf.eecs.umich.edu> bagchi@eecs.umich.edu (Ranjan Bagchi) writes:
>
>	Is there any way I can take a function, such as '+', and
>modify it to apply to data-structures (Tagged, I suppose) which it
>didn't previously?
>	I've been screwing around with simulating matrices with nested
>lists, and would be much happier if I could multiply 'em with 'x', as
>opposed to calling a function called 'mult'.
> 
>	Ah, well...
>
> 	-rj

You can write your routine called 'mult' that will handle all of the data
type you want and then assign that function to the 'x' key with:
	<< prog >> 75 ASN

Then put the calculator in user mode and you are all set!

-- 
_______________________________________________________________________________
Wayne Scott             |  INTERNET:   wscott@ecn.purdue.edu
Electrical Engineering  |  BITNET:     wscott%ecn.purdue.edu@purccvm
Purdue University       |  UUCP:      {purdue, pur-ee}!ecn.purdue.edu!wscott

alexw@cyclops.intel.com (Alex Witkowski) (11/26/90)

In article <BAGCHI.90Nov25154728@snarf.eecs.umich.edu> bagchi@eecs.umich.edu (Ranjan Bagchi) writes:
>
>	Is there any way I can take a function, such as '+', and
>modify it to apply to data-structures (Tagged, I suppose) which it
>didn't previously?
>	I've been screwing around with simulating matrices with nested
>lists, and would be much happier if I could multiply 'em with 'x', as
>opposed to calling a function called 'mult'.
> 

I would suggest that you modify your 'mult' function to check the type of
object in the stack using the built-in TYPE function.  If it is a list,
apply the old 'mult' function, otherwise perform the built-in 'x' function.
Then assign this modified function to the 'x' key and activate user-mode.
Now, whenever you type 'x' with your lists in the stack, it will perform
your 'mult' function and otherwise it will perform the built-in 'x' function.


Alex

-------------------------------------------------------------------------------
Alex Witkowski        
Intel Corporation     internet: alexw@t12sys.intel.com   
Santa Clara, CA 95051 uucp:     ...!{decwrl|hplabs!oliveb}!intelca!t12sys!alexw

kanecki@vacs.uwp.wisc.edu (David Kanecki) (11/26/90)

an old way to overload operators is to setup a jump table
like in the C language example below:

   aft[1]=*mat_mult();
  aft[2]=*mat_add();
   aft[3]=*mat_inverse();

then re assign the keys to specific locations in the jump table,
or call table. And, to access a function one would use:

    aft[1](x,y)  { multiply  matrix x by y }


David H. Kanecki, Bio. Sci., A.C.S.
kanecki@vacs.uwp.wisc.edu

"Engage....", Capt. Picard, Star-Trek  Next Generation