[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