Skip to content

Support Hashtable JSO Objects #1

Description

@jl2

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions