1. Object Oriented Euphoria

I've just released the first version of this.  It should show up on
the RDS page soon.  I've also put it up on my page, but I'd like to
request that if you have a registered version of the translator, please
don't download the executables (it's a free web page, and my bandwidth
is pretty limited):

http://www14.brinkster.com/matthewlewis/projects.html

Here's a quick overview of what you can do with it:

Create classes ('euclass'es, to be precise).  Each class can have its
own set of member routines, which can be called by dot notation.  You 
can have multiple methods with the same name as long as they take different
number or types of arguments.  Each class may inherit from another class,
and it automatically inherits any methods from its parent(s).  These
methods may also be over-ridden.

Matt Lewis

new topic     » topic index » view message » categorize

2. Re: Object Oriented Euphoria

The only thing I have to say, is thank you.  It looks absolutely
beautiful, for what you have so far.  Keep up the good work Matt, maybe
we can show Robert that he hasn't made a mistake by opening up the
interpreter source code, even if it's in Euphoria.

Mario

new topic     » goto parent     » topic index » view message » categorize

3. Re: Object Oriented Euphoria

Matt, this looks very good. I would use it, especially if preprocessor will be
available so that there is no speed loss. If only it would work more "intuitive",
like example I gave below.

I would also like to use classes as structures, ie only data no routines.
Because the meaning of OO or classes for me is in that it helps me organize my
code more clear.

I like name class more than euclass.

About trace or debugger: in my opinion it should be part of editor, so that you
have all at one place. Debugger will have to display lines of code anyway, why
not use an existing editor to do it?

include get.e

euclass PERSON
	integer age
	sequence name
	procedure show_stats ()
		printf (1, "Persons name is %s and is %d years old.\n",
			{name, age})
	end procedure
end euclass

PERSON tone
tone.age = 23
tone.name = "Tone Škoda"
tone.show_stats ()

if wait_key () then end if



Matt Lewis wrote:
> 
> 
> I've just released the first version of this.  It should show up on
> the RDS page soon.  I've also put it up on my page, but I'd like to
> request that if you have a registered version of the translator, please
> don't download the executables (it's a free web page, and my bandwidth
> is pretty limited):
> 
> <a
> href="http://www14.brinkster.com/matthewlewis/projects.html">http://www14.brinkster.com/matthewlewis/projects.html</a>
> 
> Here's a quick overview of what you can do with it:
> 
> Create classes ('euclass'es, to be precise).  Each class can have its
> own set of member routines, which can be called by dot notation.  You 
> can have multiple methods with the same name as long as they take different
> number or types of arguments.  Each class may inherit from another class,
> and it automatically inherits any methods from its parent(s).  These
> methods may also be over-ridden.
> 
> Matt Lewis
>

new topic     » goto parent     » topic index » view message » categorize

4. Re: Object Oriented Euphoria

On 12 Dec 2004, at 10:59, Tone =8Akoda wrote:

>
>
> posted by: Tone =8Akoda <tskoda at email.si>
>
> Matt, this looks very good. I would use it, especially if preprocessor wi=
ll be
> available so that there is no speed loss. If only it would work more
> "intuitive", like example I gave below.
>
> I would also like to use classes as structures, ie only data no routines.=

> Because the meaning of OO or classes for me is in that it helps me organi=
ze my
> code more clear.
>
> I like name class more than euclass.
>
> About trace or debugger: in my opinion it should be part of editor, so th=
at you
> have all at one place. Debugger will have to display lines of code anyway=
, why
> not use an existing editor to do it?
>
> }}}
<eucode>
>=20
> include get.e
>=20
> euclass PERSON
>  integer age
>  sequence name
>  procedure show_stats ()
>   printf (1, "Persons name is %s and is %d years old.\n",
>    {name, age})
>  end procedure
> end euclass
>=20
> PERSON tone
> tone.age = 23
> tone.name = "Tone =8Akoda"
> tone.show_stats ()
>=20
> if wait_key () then end if
>=20
> </eucode>
{{{


Good stuff. Where i differ on everyone i know is in inheritance and
descendants. I wish to allow full overloading and multiple inheritances, li=
ke:

<not any code in particular>
class a = bird
  properties = { }
  methods ____
class b = mammal
  properties = { }
  methods ___

class platypus ==20
   inherit class a
   inherit class b -- last inherit has priority
   properties = { } -- overload as necessary
   methods ____ -- overload as necessary

</code>

Also, dynamic changes in methods and any data field while the program is=

running, with changes (or additions or deletions) propagated thru all
descendants instantly.

Kat

new topic     » goto parent     » topic index » view message » categorize

5. Re: Object Oriented Euphoria

Tone Škoda wrote:
> 
> Matt, this looks very good. I would use it, especially if preprocessor will be
> available
> so that there is no speed loss. If only it would work more "intuitive", like
> example
> I gave below.

It turns out the preprocessor is fairly trivial, now that it correctly 
parses.  I'm basically adding a '-p' command line option.  It will then
parse the program, and any files that needed to be modified are rewritten
into a 'preprocess' subdirectory (from the directory where the main 
file was).

> I would also like to use classes as structures, ie only data no routines.
> Because the
> meaning of OO or classes for me is in that it helps me organize my code more
> clear.

I'll have to think about how to manage this.  Or maybe you can. :)

> I like name class more than euclass.

Me, too, but I've got several projects where class already exists, and I
think euclass isn't too bad.  We'll see.  You can always change it in 
your copy, and use that in your code (keylist.e).

> About trace or debugger: in my opinion it should be part of editor, so that
> you have
> all at one place. Debugger will have to display lines of code anyway, why not
> use an
> existing editor to do it?

I'd like to have a nicer, GUI based editor, and I don't want to bloat the
code to include all that.  I *do* plan to give an API that others can
use to build whatever sort of debugger they'd like.

> }}}
<eucode>
> 
> include get.e
> 
> euclass PERSON
> 	integer age
> 	sequence name
> 	procedure show_stats ()
> 		printf (1, "Persons name is %s and is %d years old.\n",
> 			{name, age})
> 	end procedure
> end euclass
> 
> PERSON tone
> tone.age = 23
> tone.name = "Tone Škoda"
> tone.show_stats ()
> 
> if wait_key () then end if
> 
> </eucode>
{{{


Hmmm...I've thought about making separate data, but I decided against it,
because there would be other issues, like when and how to copy things.
All data would be held in the class object itself (so maybe it's a 
sequence).  It would probably be possible to turn something like the
above into:
me.name  ==> me[1]


Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

6. Re: Object Oriented Euphoria

Kat wrote:
> 
> Good stuff. Where i differ on everyone i know is in inheritance and
> descendants. I wish to allow full overloading and multiple inheritances, li=
> ke:
> 
> <not any code in particular>
> class a = bird
>   properties = { }
>   methods ____
> class b = mammal
>   properties = { }
>   methods ___
> 
> class platypus ==20
>    inherit class a
>    inherit class b -- last inherit has priority
>    properties = { } -- overload as necessary
>    methods ____ -- overload as necessary
> 
> </code>

I suppose the multiple inheritance thing would be possible.  It could be 
done right now (although not automagically) by creating a platypus as
a class b, and then casting to a where necessary.  I'll think about how
to implement this further.
 
> Also, dynamic changes in methods and any data field while the program is
> running, with changes (or additions or deletions) propagated thru all
> descendants instantly.

I don't think there's any way to do this (unless I start mucking around
in the back end, which destroys my ability to be compatible via preprocessor
or possible future 2-step binding).  I don't see an example of this above.
Could you give an example of how you might do this?

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

7. Re: Object Oriented Euphoria

I'll have to think about how to manage this.  Or maybe you can. :)

>> I like name class more than euclass.

> Me, too, but I've got several projects where class already exists, and I
> think euclass isn't too bad.  We'll see.  You can always change it in 
> your copy, and use that in your code (keylist.e).

How about class_  with an underscore !

By the way, in the PD source where is the pc (program counter)
global variable located. 



Bernie

My files in archive:
w32engin.ew mixedlib.e eu_engin.e win32eru.ew

Can be downloaded here:
http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan

new topic     » goto parent     » topic index » view message » categorize

8. Re: Object Oriented Euphoria

> By the way, in the PD source where is the pc (program counter)
> global variable located.

-- execute.e: line 68
integer pc, a, b, c, d, target, len, keep_running


~Greg

new topic     » goto parent     » topic index » view message » categorize

9. Re: Object Oriented Euphoria

On 12 Dec 2004, at 12:51, Matt Lewis wrote:

> 
> 
> posted by: Matt Lewis <matthewwalkerlewis at yahoo.com>
> 
> Kat wrote:
> > 
> > Good stuff. Where i differ on everyone i know is in inheritance and
> > descendants. I wish to allow full overloading and multiple inheritances, li=
> > ke:
> > 
> > <not any code in particular>
> > class a = bird
> >   properties = { }
> >   methods ____
> > class b = mammal
> >   properties = { }
> >   methods ___
> > 
> > class platypus ==20
> >    inherit class a
> >    inherit class b -- last inherit has priority
> >    properties = { } -- overload as necessary
> >    methods ____ -- overload as necessary
> > 
> > </code>
> 
> I suppose the multiple inheritance thing would be possible.  It could be 
> done right now (although not automagically) by creating a platypus as
> a class b, and then casting to a where necessary.  I'll think about how
> to implement this further.
> 
> > Also, dynamic changes in methods and any data field while the program is
> > running, with changes (or additions or deletions) propagated thru all
> > descendants instantly.
> 
> I don't think there's any way to do this (unless I start mucking around
> in the back end, which destroys my ability to be compatible via preprocessor
> or
> possible future 2-step binding).  I don't see an example of this above. Could
> you give an example of how you might do this?

1) one fine day in Oz, we don't know of the playtpus
2) the next fine day in Oz, we find it
3) the following day, supervisors are raising heck because the platypus 
cannot exist in the known classifications.
4) a confusing day in Europe, those nuts in Oz came up with a platyus thing, 
and we haveto make a new class for it without rebooting reality.

Kat

new topic     » goto parent     » topic index » view message » categorize

10. Re: Object Oriented Euphoria

Kat wrote:
> 
> On 12 Dec 2004, at 12:51, Matt Lewis wrote:
> 
> > 
> > posted by: Matt Lewis <matthewwalkerlewis at yahoo.com>
> > 
> > Kat wrote:
> >
> > > Also, dynamic changes in methods and any data field while the program is
> > > running, with changes (or additions or deletions) propagated thru all
> > > descendants instantly.
> > 
> > I don't think there's any way to do this (unless I start mucking around
> > in the back end, which destroys my ability to be compatible via preprocessor
> > or
> > possible future 2-step binding).  I don't see an example of this above.
> > Could
> > you give an example of how you might do this?
> 
> 1) one fine day in Oz, we don't know of the playtpus
> 2) the next fine day in Oz, we find it
> 3) the following day, supervisors are raising heck because the platypus 
> cannot exist in the known classifications.
> 4) a confusing day in Europe, those nuts in Oz came up with a platyus thing, 
> and we haveto make a new class for it without rebooting reality.

I understand why this is useful.  I'm just not sure how it could be 
implemented--other than, I suppose, some sort of eval function.  I've 
thought a little about this, but I'm not sure how to do it...

Do you have an idea of what an implementation might look like?

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

11. Re: Object Oriented Euphoria

On 12 Dec 2004, at 19:07, Matt Lewis wrote:

> 
> 
> posted by: Matt Lewis <matthewwalkerlewis at yahoo.com>
> 
> Kat wrote:
> > 
> > On 12 Dec 2004, at 12:51, Matt Lewis wrote:
> > 
> > > 
> > > posted by: Matt Lewis <matthewwalkerlewis at yahoo.com>
> > > 
> > > Kat wrote:
> > >
> > > > Also, dynamic changes in methods and any data field while the program is
> > > > running, with changes (or additions or deletions) propagated thru all
> > > > descendants instantly.
> > > 
> > > I don't think there's any way to do this (unless I start mucking around in
> > > the back end, which destroys my ability to be compatible via preprocessor
> > > or
> > > possible future 2-step binding).  I don't see an example of this above.
> > > Could you give an example of how you might do this?
> > 
> > 1) one fine day in Oz, we don't know of the playtpus
> > 2) the next fine day in Oz, we find it
> > 3) the following day, supervisors are raising heck because the platypus 
> > cannot exist in the known classifications.
> > 4) a confusing day in Europe, those nuts in Oz came up with a platyus thing,
> > and we haveto make a new class for it without rebooting reality.
> 
> I understand why this is useful.  I'm just not sure how it could be 
> implemented--other than, I suppose, some sort of eval function.  I've 
> thought a little about this, but I'm not sure how to do it...
> 
> Do you have an idea of what an implementation might look like?

In the Eu source, no, sorry. Since RobC won't put in an eval(), i can't think of
a way to make this happen in Eu. With eval(), it would be simple to drop 
everything into associated lists, use routine_id and var_id and eval() to add 
classes, methods, etc while the app is running. It's so difficult to come up 
with every scenario of input and expected output in real world interactions, 
but with mirc it's almost trivial because i can $eval() the latest data and 
methods of handling it.

Kat

new topic     » goto parent     » topic index » view message » categorize

12. Re: Object Oriented Euphoria

Kat wrote:
> 
> In the Eu source, no, sorry. Since RobC won't put in an eval(), i can't think
> of
> a way to make this happen in Eu. With eval(), it would be simple to drop 
> everything into associated lists, use routine_id and var_id and eval() to add 
> classes, methods, etc while the app is running. It's so difficult to come up 
> with every scenario of input and expected output in real world interactions, 
> but with mirc it's almost trivial because i can $eval() the latest data and 
> methods of handling it.
> 

OK, that's what I figured.  I'll have to think about how to get an eval()
statement.  That's something I'd like, too.

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

13. Re: Object Oriented Euphoria

On Mon, 13 Dec 2004 03:48:35 -0800, Matt Lewis <guest at rapideuphoria.com>
wrote:
> 
> 
> posted by: Matt Lewis <matthewwalkerlewis at yahoo.com>
> 
> Kat wrote:
> >
> > In the Eu source, no, sorry. Since RobC won't put in an eval(), i can't
> > think of
> > a way to make this happen in Eu. With eval(), it would be simple to drop
> > everything into associated lists, use routine_id and var_id and eval() to
> > add
> > classes, methods, etc while the app is running. It's so difficult to come up
> > with every scenario of input and expected output in real world interactions,
> > but with mirc it's almost trivial because i can $eval() the latest data and
> > methods of handling it.
> >
> 
> OK, that's what I figured.  I'll have to think about how to get an eval()
> statement.  That's something I'd like, too.
> 
> Matt Lewis
> 
> 
> 
> 
> 


-- 
MrTrick

new topic     » goto parent     » topic index » view message » categorize

14. Re: Object Oriented Euphoria

Kat wrote:
> 
> Good stuff. Where i differ on everyone i know is in inheritance and
> descendants. I wish to allow full overloading and multiple inheritances, li=
> ke:
> 
> <not any code in particular>
> class a = bird
>   properties = { }
>   methods ____
> class b = mammal
>   properties = { }
>   methods ___
> 
> class platypus ==20
>    inherit class a
>    inherit class b -- last inherit has priority
>    properties = { } -- overload as necessary
>    methods ____ -- overload as necessary
> 
> </code>

Thought about this a little more.  I think what I would do is to make
a class declaration look like:
euclass platypus( a A, b B )

      end euclass

Or possibly the arguments would be reversed (b has priority over a).
But here would be my question:  What about the subclasses of a and b?
Should I look through all of b's subclasses before I check a?  I'm guessing
that I should.  I think this would be doable.  One thing, though, you'd
need to make sure that all the subclasses were type-compatible.

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

15. Re: Object Oriented Euphoria

On Mon, 13 Dec 2004 05:06:36 -0800, Matt Lewis
<guest at RapidEuphoria.com> wrote:

>But here would be my question:  What about the subclasses of a and b?
>Should I look through all of b's subclasses before I check a?
Wasn't that one of the problems with multiple inheritance? If both a
and b have method1 and method2 wasn't there some reason you couldn't
use a's method1 and b's method2? (Don't ask me what language I heard
this about, I have no idea.)

Anyway it would make more sense to me to be explicit about these
things, if there is any ambiguity that is. I suppose it is OK to allow
the compiler to "guess" which method you mean, but allow an optional
"namespace" qualifier. Rats nests of inherited methods are worse than
spaghetti gotos, imo, though source-level trace is an obvious aide.

Regards,
Pete

new topic     » goto parent     » topic index » view message » categorize

16. Re: Object Oriented Euphoria

Matt Lewis  wrote:

> Thought about this a little more.  I think what I would do is to make
> a class declaration look like:
> }}}
<eucode>
>       euclass platypus( a A, b B )
>
>       end euclass
> </eucode>
{{{

> Or possibly the arguments would be reversed (b has priority over a).
> But here would be my question:  What about the subclasses of a and b?
> Should I look through all of b's subclasses before I check a?  I'm
guessing
> that I should.  I think this would be doable.  One thing, though, you'd
> need to make sure that all the subclasses were type-compatible.
>

It's more complicated than that. The following link shows how Python handles
it from version 2.3 onward:

http://www.python.org/2.3/mro.html

The complexity is not just in the subclasses, but in the superclasses that a
and b may have in common. For example,  a and b are both subclasses of c and
c defines a method x. Both a and b override x to add their own functionality
and then call c's x method to perform its task. If we have euclass  platypus
... as above and have

platypus p
p.x

where platypus overrides x and calls both superclass methods. This will
result in c's x method being called twice for the same transaction which is
usually redundant and often an error--though in some cases it is the correct
behaviour.

In C++ the programmer must disambiguate everything.

All other major langauges that I know of (Java, C#, Ruby, Smalltalk ...) use
single inheritence, ordinarily with some mechanism to get some of the
benfits of multiple inheritance without the complexity (Java and C#
interfaces, Ruby modules ...).


I coded but never released a multiple inheritance version of Diamond (never
quite got it working)--to my perception as coder, the complexity level was
at least double.


-- Mike Nelson

new topic     » goto parent     » topic index » view message » categorize

17. Re: Object Oriented Euphoria

Pete Lomax wrote:
> 
> On Mon, 13 Dec 2004 05:06:36 -0800, Matt Lewis
> <guest at RapidEuphoria.com> wrote:
> 
> >But here would be my question:  What about the subclasses of a and b?
> >Should I look through all of b's subclasses before I check a?
>
> Wasn't that one of the problems with multiple inheritance? If both a
> and b have method1 and method2 wasn't there some reason you couldn't
> use a's method1 and b's method2? (Don't ask me what language I heard
> this about, I have no idea.)
> 
> Anyway it would make more sense to me to be explicit about these
> things, if there is any ambiguity that is. I suppose it is OK to allow
> the compiler to "guess" which method you mean, but allow an optional
> "namespace" qualifier. Rats nests of inherited methods are worse than
> spaghetti gotos, imo, though source-level trace is an obvious aide.

The way I have it set up, you can *always* be specific, if you like,
by specifying the name of the euclass before the dot, then the method 
name, and then the 'euobject' as the first parameter.  There's nothing
inherently special about the datatype of an euobject.  As long as it 
passes normal typechecking, it should be fine (that's the spec, anyway :).


The multiple inheritance would be there to offer a 'default' way of 
doing this.

Mike Nelson wrote:
>
> The complexity is not just in the subclasses, but in the superclasses that a
> and b may have in common. For example,  a and b are both subclasses of c and
> c defines a method x. Both a and b override x to add their own functionality
> and then call c's x method to perform its task. If we have euclass  platypus
> ... as above and have

Yes, the approach I was thinking of taking was to basically ignore the 
fact that there may be some duplicate subclasses.  Then traverse the
tree of subclasses based on a simple hierarchy rule (first or last) 
declared subclass is searched first, and all of its subclasses, using 
the same precedence rule.  I don't care *too* much about the wasted 
effort spent looking at duplicates (assuming I haven't found anything),
since it's all done during compile time, and you can always remove that
by binding/shrouding/preprocessing.

> where platypus overrides x and calls both superclass methods. This will
> result in c's x method being called twice for the same transaction which is
> usually redundant and often an error--though in some cases it is the correct
> behaviour.

There's no automatic calling subclass methods.  Only one routine will be
called (the first one found).  If you want them to call subclass methods,
it will have to be explicitly done within the method.  I wouldn't want 
to have to deal with that as a coder, let alone as a language designer--
it's always sort of bugged me that constructors work like this (in C++
at least), although I suppose I can see the usefulness there.

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

18. Re: Object Oriented Euphoria

On 13 Dec 2004, at 6:53, Mike Nelson wrote:

> 
> 
>  Matt Lewis  wrote:
> 
> > Thought about this a little more.  I think what I would do is to make
> > a class declaration look like:
> > }}}
<eucode>
> >       euclass platypus( a A, b B )
> >
> >       end euclass
> > </eucode>
{{{

> > Or possibly the arguments would be reversed (b has priority over a).
> > But here would be my question:  What about the subclasses of a and b?
> > Should I look through all of b's subclasses before I check a?  I'm
> guessing
> > that I should.  I think this would be doable.  One thing, though, you'd
> > need to make sure that all the subclasses were type-compatible.

And here i thought it would be more of a matter of overwriting any preceeding 
declarations. No duplicates to consider. For any tree, if you overwrite in the 
inheritance statement, you get the latest trunk and branches, If you manually 
change a branch (subclass), then you have new subclasses for that trunk 
within the class that did the inheriting. It's all still addressed the same:

platypus.trunk.branch.whatever

Even tho you inherited something from mammal, like legs, when dealing with 
platypus you don't do 

mammal.legs.anything

, you do :

platypus.legs.whatever

If you overwrite whatever, it is NOT relayed back up the inheritance. So 
something like platypus.legs.spines, is not found in mammals.legs._. 

Consider the famous Jiri associated lists. If you call (look for, request, etc)
a
item there, you get it. If the associated list "look and feel" is used to hold
the
trunks and branches, then each inheritance writes in it's methods and data. If 
the next inheritance does the same, it overwrites the old data. Unless you 
"inherit as"? But the end result is: if some inheritance wrote it, you have it,,
but if no inheritance wrote it, the call returns "not found" (or -1 or "blah" or
etc), but doesn't crash. If you want a blend of two parents, write it, since you
can't inherit the blend by the same name. 

Instead of such a high class as platypus, consider mammal feet. Some walk 
on toe(s) (cat, horse, etc), some on the entire foot (human, elephant, etc). 
Just about everwhere, a learning box will wish to overwrite a method or data, 
without rebooting, as new data becomes available which the programmer 
could not have foreseen.

Kat
Http://TiggrBox.Info

new topic     » goto parent     » topic index » view message » categorize

19. Re: Object Oriented Euphoria

A bit of irrelevance:

Elephants essentially walk on their toes.

http://elephant.elehost.com/About_Elephants/Anatomy/The_Feet/the_feet.html

Kat wrote:

> Instead of such a high class as platypus, consider mammal feet. Some walk
> on toe(s) (cat, horse, etc), some on the entire foot (human, elephant,
etc).

Dan Moyer

ps.  Hope your new lawyer can help you!!

----- Original Message ----- 
From: "Kat" <gertie at visionsix.com>
To: <EUforum at topica.com>
Sent: Monday, December 13, 2004 11:31 AM
Subject: Re: Object Oriented Euphoria

<snip>


> Instead of such a high class as platypus, consider mammal feet. Some walk
> on toe(s) (cat, horse, etc), some on the entire foot (human, elephant,
etc).
> Just about everwhere, a learning box will wish to overwrite a method or
data,
> without rebooting, as new data becomes available which the programmer
> could not have foreseen.
>
> Kat
> Http://TiggrBox.Info
>
>
>
>

new topic     » goto parent     » topic index » view message » categorize

20. Re: Object Oriented Euphoria

On 13 Dec 2004, at 19:08, Dan Moyer wrote:

> 
> 
> A bit of irrelevance:
> 
> Elephants essentially walk on their toes.
> 
> http://elephant.elehost.com/About_Elephants/Anatomy/The_Feet/the_feet.html

But the heel is held up by the rest of the thick padding under it. See the bone 
structure in a pic on that page. It is a weight bearing heel. Rather like
walking on
foam high heels. As the heel padding breaks down under age and weight, the heel 
sinks lower, the padding spreads back, and you get this :The fore foot of an 
elephant has a circular shaped outline and the back foot takes more of an oval 
shape. However, "elongated oval footprints footprints usually indicate an adult 
male" .

But basically, i'll haveto edit my elephant.foot method?

Kat

> Kat wrote:
> 
> > Instead of such a high class as platypus, consider mammal feet. Some walk on
> > toe(s) (cat, horse, etc), some on the entire foot (human, elephant,
> etc).
> 
> Dan Moyer
> 
> ps.  Hope your new lawyer can help you!!
> 
> ----- Original Message ----- 
> From: "Kat" <gertie at visionsix.com>
> To: <EUforum at topica.com>
> Sent: Monday, December 13, 2004 11:31 AM
> Subject: Re: Object Oriented Euphoria
> 
> <snip>
> 
> 
> > Instead of such a high class as platypus, consider mammal feet. Some walk on
> > toe(s) (cat, horse, etc), some on the entire foot (human, elephant,
> etc).
> > Just about everwhere, a learning box will wish to overwrite a method or
> data,
> > without rebooting, as new data becomes available which the programmer
> > could not have foreseen.
> >
> > Kat
> > Http://TiggrBox.Info
> >
> >
> 
> 
>

new topic     » goto parent     » topic index » view message » categorize

21. Re: Object Oriented Euphoria

Kat wrote:
>
>
> On 13 Dec 2004, at 19:08, Dan Moyer wrote:
>
> >
> > A bit of irrelevance:
> >
> > Elephants essentially walk on their toes.
> >
> >
http://elephant.elehost.com/About_Elephants/Anatomy/The_Feet/the_feet.html
>
> But the heel is held up by the rest of the thick padding under it. See the
bone
> structure in a pic on that page. It is a weight bearing heel.

You're right, & that's why I said "essentially", instead of what my original
"actually" :)

>Rather like walking on
> foam high heels. As the heel padding breaks down under age and weight, the
heel
> sinks lower, the padding spreads back, and you get this :The fore foot of
an
> elephant has a circular shaped outline and the back foot takes more of an
oval
> shape. However, "elongated oval footprints footprints usually indicate an
adult
> male" .
>
> But basically, i'll haveto edit my elephant.foot method?

Maybe;  they do walk on their whole "foot", as you said, AND on "tip-toes",
too.  Maybe they also need to be considered "ballet-dancers" also, heh heh
heh :)

>
> Kat
>
> > Kat wrote:
> >
> > > Instead of such a high class as platypus, consider mammal feet. Some
walk on
> > > toe(s) (cat, horse, etc), some on the entire foot (human, elephant,
> > etc).
> >
> > Dan Moyer
> >
> > ps.  Hope your new lawyer can help you!!
> >
> > ----- Original Message ----- 
> > From: "Kat" <gertie at visionsix.com>
> > To: <EUforum at topica.com>
> > Sent: Monday, December 13, 2004 11:31 AM
> > Subject: Re: Object Oriented Euphoria
> >
> > <snip>
> >
> >
> > > Instead of such a high class as platypus, consider mammal feet. Some
walk on
> > > toe(s) (cat, horse, etc), some on the entire foot (human, elephant,
> > etc).
> > > Just about everwhere, a learning box will wish to overwrite a method
or
> > data,
> > > without rebooting, as new data becomes available which the programmer
> > > could not have foreseen.
> > >
> > > Kat
> > > Http://TiggrBox.Info
> > >
> > >
>
>
>

new topic     » goto parent     » topic index » view message » categorize

22. Re: Object Oriented Euphoria

Matt:
Any chance of some instructions for beginners on where to place your OO version
files (installation), and also some basic example code to show off the features
(usage)?
The readme does not really go into any detail on these aspects.

Cheers,

Dave

. .. : :: = == == = :: : .. .
Server-Side DB driven web sites,
Software Development
and part-time games developer

contact dave_p at purpletiger dot com
. .. : :: = == == = :: : .. .

new topic     » goto parent     » topic index » view message » categorize

23. Re: Object Oriented Euphoria

Dave Probert wrote:
> 
> Matt:
> Any chance of some instructions for beginners on where to place your OO
> version files
> (installation), and also some basic example code to show off the features
> (usage)?
> The readme does not really go into any detail on these aspects.

OK, I'll add some of that.  In the meantime, you can put the executables
in your %EUDIR%/bin directory.  Then you can use them just like the normal
euphoria interpreters from the command line.  

You can put the source stuff wherever you like.  Then, to run code, the
easiest thing is to develop your code in the same directory.  This is
messy, though, so you might want to put it in a subdir or a sibling dir.
Then you just need to supply the path to the main file from the command
line:

exw eu.ex subdir\my_app.exw
exu eu.ex ../sibling_dir/my_app.exw

There's one demo file (not mentioned in the readme, unfortunately) called
class.ex.  It shows a bit of what you can do.  As I mentioned earlier,
I'm shooting to put up a new [source] release later today.

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

24. Re: Object Oriented Euphoria

Superb.  Exactly what the doctor ordered :)

I'm gonna be taking a good look at it all later tonight :)

BTW, in your opinion is it a good idea to upgrade to Eu2.5 in general.
I've got a couple of commercial apps in development and I don't want to mess
them up when everything is working fine under 2.4.

Cheers
Dave
. .. : :: = == == = :: : .. .
Server-Side DB driven web sites,
Software Development
and part-time games developer

contact dave_p at purpletiger dot com
. .. : :: = == == = :: : .. .

new topic     » goto parent     » topic index » view message » categorize

25. Re: Object Oriented Euphoria

Dave Probert wrote:
> 
> Superb.  Exactly what the doctor ordered :)
> 
> I'm gonna be taking a good look at it all later tonight :)
> 
> BTW, in your opinion is it a good idea to upgrade to Eu2.5 in general.
> I've got a couple of commercial apps in development and I don't want to mess
> them up
> when everything is working fine under 2.4.

I can only think of one hiccup with 2.5, and that's not being able to
see constants in the trace screen (which Rob is fixing for the beta).

Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

26. Object Oriented Euphoria

For Liu:

If Object Oriented Programming in Euphoria is what you
want then I suggest you take a look at Mike Nelson's
Diamond libraries for OOP in Euphoria.  Mike has
continued to maintain and improve his libraries for
several years now.  He has even gone so far as to
provide two flavors - Diamond Lite, for beginners:
http://www.rapideuphoria.com/diamondlite.zip

and Diamond, a full featured OOP library:
http://www.rapideuphoria.com/diamond.zip

I for one would appreciate your removing the
"Euphoria has a long way to go" signature from 
your emails. There is something very strange about a
person who pops into a community and then immediately
starts to identify himself as a critic.

You might also like to take a look at the Ruby
Programming language - it is OOP from start to finish.

Ken Rhodes

--- Liu Junfeng <rufi at 163.com> wrote:
> 
> What I like most about Euphoria are:
> 1.simple and clear syntax
> 2.flexible sequence  
> 3.can call dll function
> 4.easy and convenient to trace and debug
> 5.high performance
> 
> my dislikes are:
> Not object oriented, can't define new object, can't
> overload operator.
> 
> Euphoria has a long way to go!
> 
>
> 
> 
> TOPICA - Start your own email discussion group.
> FREE!
>
>
>

new topic     » goto parent     » topic index » view message » categorize

27. Re: Object Oriented Euphoria

On Tue, Jan 21, 2003 at 11:06:25AM -0800, Ken Rhodes wrote:
> I for one would appreciate your removing the
> "Euphoria has a long way to go" signature from 
> your emails. There is something very strange about a
> person who pops into a community and then immediately
> starts to identify himself as a critic.

Ah yes, I remember a certain "Xanax" who did the same thing, though
to a lesser degree ....

(Not that I'm saying Euman is behind it again this time. But I would not be
suprised if this person was in fact another oldtimer with a grudge.)

jbrown

-- 
 /"\  ASCII ribbon
 \ /  campain against
  X   HTML e-mail and
 /*\  news and unneeded MIME

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu