Loading...

factor-talk@lists.sourceforge.net

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: [Factor-talk] cond-case or similar word Tadhg O'Meara Wed Apr 20 09:01:36 2011

Thanks, that's great.

On 19 April 2011 23:14, Martial Boniou <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I did a quick hack for this:
>
> MACRO: cond-case ( assoc -- )
>        [ dup callable? not
>                [
>                        [ first '[ dup @ ] ]
>                        [ second '[ drop @ ] ] bi 2array
>                ]
>                [ '[ drop @ ] ] if
>        ] map '[ _  cond ] ;
>
> I guess someone can do a better code by coding a more specific cond.
>
> my 2 cents...
>
> At Tue, 19 Apr 2011 20:49:51 +0100,
> "Tadhg O'Meara" <[EMAIL PROTECTED]> wrote:
>>
>> I'm looking for a word that's like cond but doesn't need all the dups
>> and drops for the simple case where you want to check various
>> properties of the object on the stack and call an appropriate
>> quotation. So instead of
>>
>> {
>>     { [ dup 0 > ] [ drop "positive" ] }
>>     { [ dup 0 < ] [ drop "negative" ] }
>>     [ drop "zero" ]
>> } cond
>>
>> I could use
>>
>> {
>>     { [ 0 > ] [ "positive" ] }
>>     { [ 0 < ] [ "negative" ] }
>>     [ "zero" ]
>> } cond-case
>>
>> I tried to write a cond-case word that adds the necessary dups and
>> drops to a cond assoc but this results in a error.
>>
>> USING: arrays combinators kernel quotations sequences ;
>>
>> : cond-case ( assoc -- )
>>         [ dup callable? not
>>                 [
>>                         [ first [ dup ] prepose ]
>>                         [ second [ drop ] prepose ] bi 2array
>>                 ]
>>                 [ [ drop ] prepose ] if
>>         ] map cond ;
>>
>> Error: Cannot apply “cond” to a run-time computed value
>> It also says cond is a macro.
>>
>> Any ideas?
>>
>> Thanks,
>> Tadhg
>>
>> ------------------------------------------------------------------------------
>> Benefiting from Server Virtualization: Beyond Initial Workload
>> Consolidation -- Increasing the use of server virtualization is a top
>> priority.Virtualization can reduce costs, simplify management, and improve
>> application availability and disaster protection. Learn more about boosting
>> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
>> _______________________________________________
>> Factor-talk mailing list
>> [EMAIL PROTECTED]
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
>
> --
> Martial Boniou
>
> ------------------------------------------------------------------------------
> Benefiting from Server Virtualization: Beyond Initial Workload
> Consolidation -- Increasing the use of server virtualization is a top
> priority.Virtualization can reduce costs, simplify management, and improve
> application availability and disaster protection. Learn more about boosting
> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
> _______________________________________________
> Factor-talk mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
>

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Factor-talk mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/factor-talk