This sparks an idea for new syntax for me. How about:

        find/::case/::skip a b size

That way you can pick and choose which refinements will be
propagated and which are hard-coded. eg:

        find/::case/skip a b size  

This means:
  /case is propagated if case is true
  /skip is always specified

Anton.

> But now I have another proposal, with less problems (I hope):
> 
>     a: "abcd"
>     b: "c"
>     case: true
>     skip: true
>     size: 2
>     do-alt find/case/skip a b size
> 
> the interpreter fetch the path (find/case/skip) and checks every 
> word in it:
> 
> 'case
>     if none/false => refinement /case is false
>     else => refinement /case is true
> 
> 'skip
>     if none/false => refinement /skip is false (size argument 
> will be ignored)
>     else => refinement /skip is true => size argument required
> 
> My doubt is about the size argument when the refinement is none: must be
> omitted or it will be ignored (not evalutaed but skipped)?
> 
> In the latter case we can write:
> 
> my-func: func [a b /case /skip size ][
>    do-alt find/case/skip a b size
> ]
> 
> also if /skip is none, else we must manually check the skip value 
> in my-func
> before calling find.
> 
> I already have working mezzanine versions using a block, but i 
> should like to
> have a do-alt native.
> 
> ---
> Ciao
> Romano

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to