{ { } } [ { 1 2 3 } duplicates ] unit-test
{ f } [ { 1 2 3 } >hash-set duplicates ] unit-test
{ { 1 } } [ { 1 2 1 } duplicates ] unit-test
+
+{ HS{ HS{ { 2 1 } { 1 2 } } } } [
+ HS{ } clone
+ HS{ { 1 2 } { 2 1 } } over adjoin
+ HS{ { 2 1 } { 1 2 } } over adjoin
+] unit-test
! Copyright (C) 2010 Daniel Ehrenberg
! Copyright (C) 2005, 2011 John Benediktsson, Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays growable.private hash-sets
+USING: accessors arrays combinators growable.private hash-sets
hashtables.private kernel kernel.private math math.private
sequences sequences.private sets sets.private slots.private
vectors ;
] [ 2drop f ] if
] [ call-next-method ] if ;
+M: hash-set hashcode*
+ [
+ dup cardinality 1 eq?
+ [ members hashcode* ] [ nip cardinality ] if
+ ] recursive-hashcode ;
+
! Default methods
M: f fast-set drop 0 <hash-set> ;