hash-sets: need to define M\ hash-set hashcode*.
parent
c9561e4f28
commit
e1e8383322
|
@ -38,3 +38,9 @@ IN: hash-sets.tests
|
||||||
{ { } } [ { 1 2 3 } duplicates ] unit-test
|
{ { } } [ { 1 2 3 } duplicates ] unit-test
|
||||||
{ f } [ { 1 2 3 } >hash-set duplicates ] unit-test
|
{ f } [ { 1 2 3 } >hash-set duplicates ] unit-test
|
||||||
{ { 1 } } [ { 1 2 1 } 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
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2010 Daniel Ehrenberg
|
! Copyright (C) 2010 Daniel Ehrenberg
|
||||||
! Copyright (C) 2005, 2011 John Benediktsson, Slava Pestov.
|
! Copyright (C) 2005, 2011 John Benediktsson, Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! 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
|
hashtables.private kernel kernel.private math math.private
|
||||||
sequences sequences.private sets sets.private slots.private
|
sequences sequences.private sets sets.private slots.private
|
||||||
vectors ;
|
vectors ;
|
||||||
|
@ -193,6 +193,12 @@ M: hash-set set=
|
||||||
] [ 2drop f ] if
|
] [ 2drop f ] if
|
||||||
] [ call-next-method ] if ;
|
] [ call-next-method ] if ;
|
||||||
|
|
||||||
|
M: hash-set hashcode*
|
||||||
|
[
|
||||||
|
dup cardinality 1 eq?
|
||||||
|
[ members hashcode* ] [ nip cardinality ] if
|
||||||
|
] recursive-hashcode ;
|
||||||
|
|
||||||
! Default methods
|
! Default methods
|
||||||
|
|
||||||
M: f fast-set drop 0 <hash-set> ;
|
M: f fast-set drop 0 <hash-set> ;
|
||||||
|
|
Loading…
Reference in New Issue