[ at* [ = ] [ 2drop f ] if ] with-assoc assoc-all? ;
: assoc= ( assoc1 assoc2 -- ? )
- [ assoc-subset? ] [ swap assoc-subset? ] 2bi and ;
+ 2dup [ assoc-size ] bi@ eq? [ assoc-subset? ] [ 2drop f ] if ;
: assoc-hashcode ( n assoc -- code )
>alist hashcode* ;
(clone) [ clone ] change-array ; inline
M: hashtable equal?
- over hashtable? [
- 2dup [ assoc-size ] bi@ eq?
- [ assoc= ] [ 2drop f ] if
- ] [ 2drop f ] if ;
+ over hashtable? [ assoc= ] [ 2drop f ] if ;
! Default method
M: assoc new-assoc drop <hashtable> ; inline