Lack of a built-in associative array/map in Scheme regularly hits and bothers me. It's so generic and so useful, maybe we will add it in r8rs?
Alists doesn't work here not only for performance reason, but because we can't distinguish empty list and empty alist.
Check out Section 3.3 of the R7RS-large "Red" document, and also check out the notes . Any Scheme implementation you use that implements SRFI-125 will already be compliant with the new standard. Also note at the beginning of the doucment there is a section called "Red Edition Ballot Results", on page 8 (item 7) they mention that SRFI-125 was voted on to be included in the standard.