Right now most of the convenience functions (fj:getjso, fj:at, fj:jsoλ, etc.) only work with jso objects with association lists. Consider making jso objects with hashtables.
I'm not completely sold on this idea yet.
First, there are already utilities for working with hashtables, so why re-implement them here?
The implementation could also add some overhead. My first thought is to make a few low level functions into generic functions and methods (notably getjso, at, and maybe a few others), but there would be some overhead from that. Admittedly it's probably not a lot, but it may be enough to affect performance.
Another alternative would be typecases in those same functions, but that probably adds a similar amount of overhead.
The best thing to do would be benchmark, but if I do enough of the work to benchmark and compare, then I'd be well on the way of supporting hashtables.
The biggest argument against hashtables is that I haven't run into any situations where the alist implementation has caused performance problems.
Right now most of the convenience functions (fj:getjso, fj:at, fj:jsoλ, etc.) only work with jso objects with association lists. Consider making jso objects with hashtables.
I'm not completely sold on this idea yet.
First, there are already utilities for working with hashtables, so why re-implement them here?
The implementation could also add some overhead. My first thought is to make a few low level functions into generic functions and methods (notably getjso, at, and maybe a few others), but there would be some overhead from that. Admittedly it's probably not a lot, but it may be enough to affect performance.
Another alternative would be typecases in those same functions, but that probably adds a similar amount of overhead.
The best thing to do would be benchmark, but if I do enough of the work to benchmark and compare, then I'd be well on the way of supporting hashtables.
The biggest argument against hashtables is that I haven't run into any situations where the alist implementation has caused performance problems.