|
[Date Index]
[Thread Index]
[Author Index]
Re: MathOO: Adding Object Orientation to Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg113681] Re: MathOO: Adding Object Orientation to Mathematica
- From: "ph.tchaa at gmail.com" <ph.tchaa at gmail.com>
- Date: Sun, 7 Nov 2010 05:12:43 -0500 (EST)
- References: <ib38rs$f0j$1@smc.vnet.net>
On 11=E6=9C=886=E6=97=A5, =E4=B8=8B=E5=8D=885=E6=99=8258=E5=88=86, "ph.tc..=
. at gmail.com" <ph.tc... at gmail.com> wrote:
> I have written a Mathematica package: MathOO, which adds object
> orientation capability to Mathematica. It is currently in beta
> version, 1.0b. It allows you to use syntax very similar to Python,
> which is very easy to use.
>
> http://www.voofie.com/content/169/mathoo-adding-python-style-object-o...
>
> Please read the above link for more information.
>
> You may discuss about it usinghttp://www.voofie.com/concept/MathOO/
> in Voofie as well. Thank you.
In developing the MathOO package: http://www.voofie.com/concept/MathOO/,
I encountered a problem with Mathematica.
The problem is, I would like to have garbage collector, so that user
don't have to explicitly deleting the object after using it. For
instance:
NewClass[Object1]
Object1.$init$[self_]:= Return[];
In the above two lines, I just defined Object1 to be a new class, and
the constructor to be an empty function. If you are familiar with
Python, you should see the similarity with __init__().
To instantiate an Object1, I do:
object1 = new[Object1][]
The output is:
Out: object$13
Here, object$13 is an temporary variable. What I want is, when there
are no references to this temporary variable, it should be deleted
automatically. But it doesn't work as expected. I have identified the
problem to be the following:
In: y = Module[{x}, x[1] = 2; x]
Out: x$117
In: FullDefinition[y]
Out: y = x$117
Attributes[x$117] = {Temporary}
x$117[1] = 2
Since y holds a reference of x$117, so x$117 is not removed yet. Now
let's delete the reference by setting the value of y to 1:
In: y = 1;
However, x$117 is still here:
In: Definition[x$117]
Out: Attributes[x$117] = {Temporary}
x$117[1] = 2
But I expected the variable to be removed since it is no longer
referenced. From the manual of Mathematica, it said:
Temporary symbols are removed if they are no longer referenced:
So, is it a bug of Mathematica? Or is there any workaround methods? I
am using Mathematica 7.0. Thank you very much.
Prev by Date:
Re: Re: MathLink and c++ compiler
Next by Date:
Re: Programmatically creating functions of many variables
Previous by thread:
MathOO: Adding Object Orientation to Mathematica
Next by thread:
Re: MathOO: Adding Object Orientation to Mathematica
|