hash-sets: need to define M\ hash-set hashcode*.

db4
John Benediktsson 2015-07-09 08:35:43 -07:00
parent c9561e4f28
commit e1e8383322
2 changed files with 13 additions and 1 deletions

View File

@ -38,3 +38,9 @@ IN: hash-sets.tests
{ { } } [ { 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

View File

@ -1,7 +1,7 @@
! 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 ;
@ -193,6 +193,12 @@ M: hash-set set=
] [ 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> ;