[EMAIL PROTECTED] wrote:
> 
> Hi Joel,
> 
> I am not glad, that I must disappoint you, [...]
>

Not at all!  It's just that I, being a Bear of Small Brain, find it
difficult to give up.  I'm very appreciative of the feedback!

I've forgotten the source, but recall the saying, "In science, a
successful experiment teaches nothing, as only the expected result
is obtained.  One learns only when an experiment fails, providing a
challenge for new thought."

Thanks for the excellent teaching!

> but see the following example:
> 
> a: 1
> b: to paren! [to paren! [to paren! [to paren! [a: 0 - a]]]]
> ifs-for-dummies b [negative: ["Negative"] zero: ["Zero"] positive:
> ["Positive"]]
> == "Zero"
> 
> I think, you should read Exception #5 for Word Evaluation of my
> Rebol/Core User's Guide Comments once again [...]
>

Have done.

>
> and hope, that this will be interesting even for others...
> 

I also.

Trying yet again, (I'm running the risk of keeping two distinct issues
entangled here -- the get-to-the-bottom-of-a-strange-selector puzzle,
and the object-for-named-parameters gimmick)...

    unravel: func [[throw] exp /local val] [
        val: exp
        while [not any[ number? val  char? val  money? val  time? val]]
[
            val: do val ]
        val ]

    signed-choice: make object! [
        positive: []
        negative: []
        zero:     []
        selector: 0
        compute:  func [[throw] selexpr] [
            selector: unravel selexpr
            either positive? selector [
                do positive
            ][
                either negative? selector [
                    do negative
                ][
                    do zero
    ]   ]   ]   ]

    ifs-for-dummies-who-play-with-fire: func [
        [throw] selexp conseq [block!] /local actor
    ][
        actor: make signed-choice conseq
        actor/compute selexp ]

After which I can conduct more experiments...

    >> c: [{[{[{"-1"}]}]}]
    == [{[{[{"-1"}]}]}]
    >> ifs-for-dummies-who-play-with-fire c [
           positive: ["+"] negative: ["-"] zero: ["0"]]
    == "-"
    >> c: [{[{[{"1"}]}]}]
    == [{[{[{"1"}]}]}]
    >> ifs-for-dummies-who-play-with-fire c [
           positive: ["+"] negative: ["-"] zero: ["0"]]
    == "+"
    >> c: [{[{[{"2 - 2"}]}]}]
    == [{[{[{"2 - 2"}]}]}]
    >> ifs-for-dummies-who-play-with-fire c [
           positive: ["+"] negative: ["-"] zero: ["0"]]
    == "0"
    >>

> 
> I am afraid, that Signed-if-for-dummies may become a victim of the GC bug
> and similar issues, when used recursively...
> 

I haven't had time to play with that issue, but will do so when I can.

Thanks again!

-jn-

Reply via email to