sets.extras: adding mapped-set.
parent
bdb2d476c1
commit
2b4844e753
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (C) 2013 Doug Coleman.
|
! Copyright (C) 2013 Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: tools.test sets.extras ;
|
USING: math sequences sets.extras tools.test ;
|
||||||
IN: sets.extras.tests
|
IN: sets.extras.tests
|
||||||
|
|
||||||
{ { } } [ { } { } setwise-xor ] unit-test
|
{ { } } [ { } { } setwise-xor ] unit-test
|
||||||
|
@ -22,3 +22,5 @@ IN: sets.extras.tests
|
||||||
{ "abc" } [ "abc" non-repeating ] unit-test
|
{ "abc" } [ "abc" non-repeating ] unit-test
|
||||||
{ "abc" } [ "abcddd" non-repeating ] unit-test
|
{ "abc" } [ "abcddd" non-repeating ] unit-test
|
||||||
{ "" } [ "aabbcc" non-repeating ] unit-test
|
{ "" } [ "aabbcc" non-repeating ] unit-test
|
||||||
|
|
||||||
|
{ HS{ 0 10 20 30 40 } } [ 5 iota [ 10 * ] mapped-set ] unit-test
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (C) 2013 Doug Coleman.
|
! Copyright (C) 2013 Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: assocs kernel locals sequences sequences.extras sets ;
|
USING: assocs hash-sets kernel locals sequences
|
||||||
|
sequences.extras sets ;
|
||||||
IN: sets.extras
|
IN: sets.extras
|
||||||
|
|
||||||
: setwise-xor ( seq1 seq2 -- set )
|
: setwise-xor ( seq1 seq2 -- set )
|
||||||
|
@ -28,3 +29,8 @@ IN: sets.extras
|
||||||
|
|
||||||
: adjoin-at* ( value key assoc -- set )
|
: adjoin-at* ( value key assoc -- set )
|
||||||
[ [ HS{ } clone ] unless* [ adjoin ] keep dup ] change-at ;
|
[ [ HS{ } clone ] unless* [ adjoin ] keep dup ] change-at ;
|
||||||
|
|
||||||
|
: mapped-set ( ... seq quot: ( ... elt -- ... newelt ) -- ... set )
|
||||||
|
over length <hash-set> [
|
||||||
|
[ adjoin ] curry compose each
|
||||||
|
] keep ; inline
|
||||||
|
|
Loading…
Reference in New Issue