did you know you didn't have to use actual objects to implement object-like behaviour.
this has the effect that you can extend the "object" at will...
just use a block with set-word values.
I have no ideas about speed, just that this could be a solution to your problem
example:
>> object: [
id none
name none
]
>> object/name: "gary"
== [
id none
name "gary"
]
== print object/name
gary
add a new item to object:
>> append object reduce ['field "chester the cat"]
== [
id none
name "gary"
field "chester the cat"
]
>> print object/field
chester the cat
Some gurus on this list might might correct me, but in the context of your problem,
this sounds like a fix to your problem. You can also put functions in such a block
and use it, BUT remember that self word is not set by default, you would have to add
it to the function's arguments (like in python) and supply the block, to which the
function is part of... like this:
object: compose [
id none
name "gary"
field "chester the cat"
status ( func [self][
probe length? self
foreach [item data] self [
either (function! <> type? :data) [
print [item "=" data]
][
print [item "()"]
]
]
])
]
object/id: 1234
object/status object
8
id = 1234
name = gary
field = chester the cat
status ()
HTH!!!
-MAx
> === Original Message ===
>
>
> New version 0.18 of DyBASE Rebol API is available.
> Now it is not necessary to specify prototype object: DyBASE is able
> to fetch object with arbitrary set of fields. It is possible because
> now fetching of object is done in three steps:
> 1. Fetch object fields into the block
> 2. Create object using constructed block
> 3. Resolve references using load-object method
>
> Certainly this approach is less efficient than used before
> (instantiation of fetched object using prototype object and
> assignment to object field using "set in" construction) but it is more
> flexible and performance penalty is not so large - about 50%.
> Also this approach makes it possible to change format of the objects
> without recreation of database.
>
> New version of DyBASE is located at
> http://www.garret.ru/~knizhnik/dybase.html
>
> --
> Best regards,
> Konstantin mailto:[EMAIL PROTECTED]
>
> --
> To unsubscribe from this list, just send an email to
> [EMAIL PROTECTED] with unsubscribe as the subject.
>
>
--
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.