public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* Associative array "pop" ?
@ 2021-01-21  2:32 Craig Ringer
  2021-02-16 21:40 ` Frank Ch. Eigler
  0 siblings, 1 reply; 2+ messages in thread
From: Craig Ringer @ 2021-01-21  2:32 UTC (permalink / raw)
  To: systemtap

Hi all

I find myself using the patterns

x_foo = foo[x]
if (x_foo != 0)
    delete foo[x]
    # do something with x_foo
}

and

if ([x] in foo) {
    x_foo = foo[x]
    delete foo[x]
    # do something with x_foo
}

frequently.

I wonder if it's feasible to have a "pop" that combines these to eliminate
repeated searches of the array. Assuming that those aren't already
optimised away - I didn't see any indication they are, but don't know the
underlying code well enough.

Something like

    if (pop(foo_x, foo[x])) {
    }

where "pop" returns 1 if the element was present, 0 if it was not present,
and deletes it if it was present.

If you think it's a good idea I'll pop this on my TODO for pending
enhancements for me to try to hack up.

-- 
 Craig Ringer                   http://www.2ndQuadrant.com/
 2ndQuadrant - PostgreSQL Solutions for the Enterprise

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-02-16 21:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-21  2:32 Associative array "pop" ? Craig Ringer
2021-02-16 21:40 ` Frank Ch. Eigler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).