Hi Joel, Thanks for your long and thoughtful reply, I've been offline for most of a week up in the hills, so I haven't had a chance to comment. Just a few minor addendums: > > I say _almost_ no difference for two reasons: > > > > 01 -- In the original code, an invocation without a refinement > > executes the code and returns False: > > >> print unit-timer > > == false > Just out of curiousity, why? I saw that, but didn't understand it.
Simply because the interface spec says it returns False if you call it wrongly (e.g. to end an unstarted timer). False for no action specified looked orthogonal to me. > > There is no implicit init code for a Rebol object. > I'm afraid I don't understand the phrase "init code" in that last > sentence. You're right and I'm wrong. I don't know what I was thinking about. If you take this object... myob: make object! [ var1: 0 var2: 10 print ["object initialized"] func1: [] [print "func 1 called"] ] ...the two var assignments and the print statement will be executed as part of the object initialization. I am right (aren't I?) that there is not implicit (= automatic) finalization/destructor code in a Rebol object, so my object doesn't get a last gasp to do something when I code: unset 'myob This makes Rebol objects less independant than in some other languages. (I know I could redefine 'unset, but there are other ways to eliminate an object). > You could actually save the WATCHMAKER instead of an individual > WATCH. The ability to save and reload objects which contain code is a very powerful one. So far, I've resisted using it -- the only objects I do save and later reload are data structures. I think I'm resistant because I see some horrible maintenance problems. I'd end up with code snippets spread widely across my database and no obvious way of changing them all to the latest version. Sunanda. -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the subject, without the quotes.
