sets.extras: adding duplicates-by.
parent
26d27ef61f
commit
fd5aa1d4f2
|
@ -24,3 +24,5 @@ IN: sets.extras.tests
|
|||
{ "" } [ "aabbcc" non-repeating ] unit-test
|
||||
|
||||
{ HS{ 0 10 20 30 40 } } [ 5 iota [ 10 * ] mapped-set ] unit-test
|
||||
|
||||
{ { 1 2 4 } } [ { 1 2 3 4 5 } [ 2/ ] duplicates-by ] unit-test
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
! Copyright (C) 2013 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: assocs hash-sets kernel locals sequences
|
||||
USING: assocs fry hash-sets kernel locals sequences
|
||||
sequences.extras sets ;
|
||||
IN: sets.extras
|
||||
|
||||
|
@ -32,5 +32,8 @@ IN: sets.extras
|
|||
|
||||
: mapped-set ( ... seq quot: ( ... elt -- ... newelt ) -- ... set )
|
||||
over length <hash-set> [
|
||||
[ adjoin ] curry compose each
|
||||
'[ @ _ adjoin ] each
|
||||
] keep ; inline
|
||||
|
||||
: duplicates-by ( seq quot: ( elt -- key ) -- seq' )
|
||||
over length <hash-set> '[ @ _ ?adjoin ] filter ; inline
|
||||
|
|
Loading…
Reference in New Issue