[alexandria-devel] remove-from-plist argument order
Nikodemus Siivola
nikodemus at random-state.net
Wed Dec 19 17:44:55 UTC 2007
On Dec 19, 2007 4:25 PM, Attila Lendvai <attila.lendvai at gmail.com> wrote:
> Nikodemus, i've seen your comment regarding r-f-p. i have more or less
> copied r-f-p from arnesi and unfortunately didn't give it enough
> thoughts and therefore the current argument order just a heritage.
>
> the (r-f-p plist &rest keys) signature looks much better and
> performance can be have through inlining the calls, so i suggest to
> simply changing r-f-p to that signature, and recording the change with
> a big fat warning.
Um. I think there is some confusion here.
What we have is
function REMOVE-FROM-PLIST plist &rest key
What I think we should have is
function REMOVE-FROM-PLIST keys plist &key test key
function SANS plist &rest keys
I suspect they are both good idioms for diffent cases -- what
bothers me about R-F-P as it stands now is that
(remove :foo plist :key #'car)
has a reversed argument order in comparison to
(remove-from-plist plist :foo)
I agree that for most uses the &rest list is almost certain to be
better, though. And I don't think this is a huge showstopper issue
-- just a minor niggle.
Another yet-different possibility would be to call it PRUNE-PLIST
and keep the current order. Balance between clear name, naming conventions,
and usability? Perhaps we can only get two out of three...
Cheers,
-- Nikodemus
More information about the alexandria-devel
mailing list