Tim Johnson napsal(a):

>* Ladislav Mecir <[EMAIL PROTECTED]> [051128 19:57]:
>  
>
>>>[REBOL] [REBOL.org] Recent changes
>>>
>>>This is an automatic email from REBOL.org, the REBOL Script Library to 
>>>notify you of recent changes to the Library.
>>>
>>>=======changes=======
>>>case.r
>>>--change: new script
>>>--title: CASE multiple conditional function
>>>--owners: cmdicely
>>>--author: Christopher M. Dicely
>>>--purpose: Provide a generalized multiple conditional function for 
>>>situations that would otherwise call for
>>>deeply nested EITHER blocks. CASE is more general than SWITCH because the 
>>>conditions can be any
>>>DO-able block rather than being based on a single value. This [...]
>>>--url: http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=case.r
>>>
>>> 
>>>
>>>      
>>>
>>CASE is already present in the official REBOL, BTW, and my
>>implementation, (known as PIF), which was around for quite some time is
>>pretty compatible with it not using blocks as conditions as in the above
>>implementation. (I am still using it renamed to CASE for backwards
>>compatibility in older interpreter versions.
>>    
>>
> 
>  Hmm! I have 2.5.6.4.2 (for linux) and there is no native or mezzanine
>  'case that I can find.
>
>  I've been using Marco's 'case for some time now.
>  tim
>
>  
>
My version is around since 2000 I think, and was published on this ML. 
Here it is renamed to CASE:

    unless value? 'case [
        case: func [
            [throw catch]
            args [block!] /local res
        ] [
            either unset? first res: do/next args [
                if not empty? args [
                    ; invalid guard
                    throw  make error! [script no-arg case condition]
                ]
            ] [
                either first res [
                    either block? first res: do/next second res [
                        do first res
                    ] [
                        ; not a block
                        throw make error! [
                            script expect-arg case block [block!]
                        ]
                    ]
                ] [
                    case second do/next second res
                ]
            ]
        ]
    ]

-L
-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to