sets: adding ?adjoin.

db4
John Benediktsson 2012-05-14 15:47:44 -07:00
parent cceb085d60
commit 548af01845
2 changed files with 8 additions and 0 deletions

View File

@ -87,6 +87,11 @@ HELP: adjoin
}
{ $side-effects "set" } ;
HELP: ?adjoin
{ $values { "elt" object } { "set" set } { "?" "a boolean" } }
{ $description "A version of " { $link adjoin } " which returns whether the element was added to the set." }
{ $notes "This is slightly less efficient than " { $link adjoin } " due to the initial membership test." } ;
HELP: delete
{ $values { "elt" object } { "set" set } }
{ $description "Destructively removes " { $snippet "elt" } " from " { $snippet "set" } ". If the element is not present, this does nothing." $nl "Each mutable set type is expected to implement a method on this generic word." }

View File

@ -132,6 +132,9 @@ M: sequence cardinality
: without ( seq set -- subseq )
tester [ not ] compose filter ;
: ?adjoin ( elt set -- ? )
2dup in? [ 2drop f ] [ adjoin t ] if ; inline
! Temporarily for compatibility
: unique ( seq -- assoc )