Switched to GitHub Actions for automated testing.
- Added
ht-update-with!
. This is like Racket'shash-update!
.
-
ht-select-keys
can now select keys whose values happen to be the symbolkey-not-found
. -
Corrected the documentation for
ht-reject!
.
-
Added
ht-empty-p
as an alias ofht-empty?
. -
Many functions have been marked as
side-effect-free
, improving performance and byte-compiler warnings. -
ht-get
andht-get*
can now be used withsetf
, e.g.
(setf (ht-get my-table my-key) new-value)
-
ht<-plist
now keeps the first item in the list, if there are duplicates. This makes it consistent withht<-alist
andplist-get
. -
ht-get*
now handles an empty list of keys correctly, and will no longer stack overflow on large lists of keys. -
ht-contains-p
now even supports hash tables that contain the keyht--not-found
.
- Added
ht-select-keys
- Added
ht-get*
ht.el now uses defsubst
for many of its functions, which may improve
performance in byte-compiled code.
ht<-alist
andht<-plist
gained an optional argumenttest
to specify the equality predicate.- Added
ht-equal?
.
Functions names have been changed to be more explicit and consistent.
Note that ht.el includes aliases, so v2.0 is fully backwards compatible.
Mutation functions now always end with !
, and ht-delete-if
has
been renamed for consistency with its non-mutating equivalent
ht-reject
.
ht-set
->ht-set!
ht-update
->ht-update!
ht-remove
->ht-remove!
ht-clear
->ht-clear!
ht-delete-if
->ht-reject!
Predicates now always end with ?
.
ht-p
->ht?
ht-contains-p
->ht-contains?
Conversion functions now use <-
and ->
.
ht-to-alist
->ht->alist
ht-to-plist
->ht->plist
ht-from-alist
->ht<-alist
ht-from-plist
->ht<-plist
- Added
ht-reject
andht-select
- Added
ht-delete-if
- Added
ht-find
- Added
ht-empty?
andht-size
Also added Travis configuration.
ht-aeach
now evaluates tonil
as it should (useht-amap
if you want the resulting hash table).
- Added
ht-merge
.
- Removed runtime dependency on
cl
.
- Fixed various
void-variable
crashes due toht-amap
only being declared after its usage.
- Added
ht-contains-p
.
ht-map
now returns a list, as you'd expect a map function to do.- Added
ht-each
for when you're only interested in side-effects. - Added an anaphoric version of
ht-each
,ht-aeach
.
- Added
ht-map
and an anaphoric versionht-amap
.
- Added
ht-p
, an alias ofhash-table-p
, (mainly for completeness).
- Added
ht-update
.
- Added the
ht
macro to make hash table literals easy
- Added
ht-to-alist
andht-to-plist
- Fixed a bug where
ht-from-alist
would overwrite the latest key-value association with older ones
- Added
ht-from-plist
- Added
ht-from-alist
- Added ht-copy
- Changed functions from hm-* to ht-* (Emacs doesn't use the term hash map)
- Initial release