The Factor libraries are so extensive it's hard to keep track/learn  
them all :-)

When's the Factor compendium coming out? :-)

Thanks!

Glenn

V. Glenn Tarcea
[EMAIL PROTECTED]

On Oct 18, 2008, at 9:52 PM, Slava Pestov wrote:

> Hi,
>
> There's a 'flags' macro in math.bitwise:
>
> { DB_CREATE DB_INIT_MPOOL DB_INIT_TXN DB_INIT_LOG } flags
>
> Also,
>
> [ [ foo , ] each ] { } make
>
> is better written as
>
> [ foo ] map
>
> Slava
>
> On Sat, Oct 18, 2008 at 8:42 PM, Glenn Tarcea <[EMAIL PROTECTED]>  
> wrote:
>> I thought this was neat so I had to share it :-)
>>
>> For BerkeleyDB I was running into a situation where I had to bitor a
>> bunch of constant values. The declarations look like:
>>
>> : DB_CREATE     HEX: 0000001 ; inline
>> : DB_FORCE       HEX: 0000004 ; inline
>> ...
>> etc...
>>
>> So I would end up with code that looked like:
>>
>> DB_CREATE DB_INIT_MPOOL bitor DB_INIT_TXN bitor DB_INIT_LOG  
>> bitor .....
>>
>> Ugly! What I really wanted to do was treat the functions as constants
>> and put them in an array so I could do a reduce.
>>
>> USING: kernel make words sequences ;
>> IN: arrays.const
>>
>> : <const-array> ( seq -- seq )
>>  [ [ dup word? [ execute ] [ ] if , ] each ] { } make ;
>>
>> : const-reduce ( seq quote -- n )
>>   [ <const-array> 0 ] dip reduce ;
>>
>> Examples:
>>
>> { DB_CREATE DB_FORCE 23 } <const-array>
>>  => { 1 4 23 }
>>
>> { DB_CREATE DB_INIT_MPOOL DB_INIT_TXN DB_INIT LOG } [ bitor ] const-
>> reduce
>>   => 720897
>>
>> Maybe something similar already exists? Either way it was fun writing
>> them :-)
>>
>> Glenn
>>
>> V. Glenn Tarcea
>> [EMAIL PROTECTED]
>>
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's  
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win  
>> great prizes
>> Grand prize is a trip for two to an Open Source event anywhere in  
>> the world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> Factor-talk mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/factor-talk
>>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's  
> challenge
> Build the coolest Linux based applications with Moblin SDK & win  
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in  
> the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Factor-talk mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/factor-talk
>
>


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to