Hi pukkamustard, On Tue, Feb 28, 2023 at 3:34 AM pukkamustard <pukkamust...@posteo.net> wrote: > > > I've been using SRFI-146 > (https://srfi.schemers.org/srfi-146/srfi-146.html) for functional > mappings. There's a Guile port: > https://inqlab.net/git/guile-srfi-146.git/ (also in Guix - > guile-srfi-146).
Your Guile port of (srfi srfi-146 hash) looks really nice! A functional hash is the most important data structure for our needs at Spritely. Do you know if it's thread-safe (unlike vhashes)? Andy's fash implementation uses atomic boxes, for example. Also, what are your thoughts on read syntax? I find myself using alists more often than I probably should because the syntax is pleasant. (hashmap comparator 'foo 1 'bar 2) is... okay, but terse syntax for the common case of a hash with literal keys would be nice. For example, #hq((foo 1) (bar 2)) for a hash with keys compared with eq? Scheme is kind of odd for not having hash literal syntax. > I've previously used pfds (as mentioned by Maxime), but I've encountered > some nasty issues that are keeping me from using it again > (https://github.com/ijp/pfds/issues/5). Good to know about this issue, thanks! - Dave