Hi Romano,

nice code samples. I can say that you revealed some bugs in the Rebol
interpreter behaviour as well as in my simulator. To obtain accurate results
I would have to modify my simulator as follows:

    blank-object: function [
        {make a blank object}
        set-words [block!]
    ] [object] [
        set-words: compose [return self (set-words)]
        object: do does [
            make object! set-words
        ]
        set/any in object 'self ()
        object
    ]

Another inaccuracy discovered by you is in the definition of my UNBOUND?
function. As you found out, it yields:

o: blank-object [a:]
word: in o 'a
unbound? word ; == true

A correct UNBOUND? function should have looked like this:

   unbound?: function [
        {determines, if a word is unbound}
        word [any-word!]
    ] [err] [
        found? all [
            error? err: try [any-type? get/any :word]
            err: disarm err
            equal? err/id 'not-defined
        ]
    ]

Now we get:

    unbound? word ; == false
    unbound? second first o ; == true

Cheers
    L

----- Original Message -----
From: "Romano Paolo Tenca"

Hi,

Rethinking at my previous message, i must change one thing. At the start of
the block context, the first (set)word is a strange word which i don't
understand well. Could it be a bug?

This is OK:

foo: 0 foo2: 1

>> make object! [get 'foo2 foo: 2 foo2: 3]
** Script Error: foo2 has no value
** Near: get 'foo2 foo: 2 foo2:

But not this :

>> make object! [get 'foo foo: 2 foo2: 3]

why not the error?

This is OK:

>> make object! [print type? get/any 'foo2 foo: 2 foo2: 3]
unset

But not this:

>> make object! [print type? get/any 'foo foo: 2 foo2: 3]
** Script Error: type? expected value argument of type: any-type
** Near: print type? get/any 'foo foo:

What happens? What type of word is it? Seems an unbound word, but it does
not
give the standard error message of an unbound word (if i am not wrong,
Ladislav's undefined? func returns true for 'foo but the error catched by
the
func is not the standard "not defined in this context")

---
Ciao
Romano

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to