On Sat, Sep 12, 2015 at 1:29 PM, Taylan Ulrich Bayırlı/Kammer <xxxxxx@gmail.com> wrote:
 
Given my new hashtable-find (not in draft #3, but seen in the live
version), this can be done like:

    (define (hashtable-pop! ht)
      (let-values (((key value found?) (hashtable-find (lambda () #t) ht)))
        (assert found?)
        (hashtable-delete! ht key)
        (values key value)))

and it gives you flexibility in deciding what to do in the no-entries
case; here just an error via assertion.  So I think I'll leave
hashtable-pop! out of the spec.  It could save you a call to the hash
function (in hashtable-delete!) if provided directly instead of
implemented like this, but I don't think that matters.

Since, at least according to my understanding, you're trying to make SRFI 126 more a minimal hash table spec., that makes sense since it's O(1) – assuming one can count on hashtable-find to be O(1) with that predicate.

SRFI 125, on the other hand, appears to aim to provide convenience procedures for many of the common use cases, so what do you think, John?