Why does Elisp
(member '3 '(1 2 3 4 5 6)) return
(3 4 5 6) instead of
t (true) or
I see the utility of a function to return the remainder/tail of an ordered list starting from, and including the delimiter element.
But why have it as a "side-effect" to the function for checking existence in a set?
Ever since I first read about
member, I wondered about this, but quietly accepted. Now recently this topic came up, and I have a few ideas, like this being about keeping the number of C-primitives low by adding semantics to the non-false return values? Or is it a "hold-over" from the math paper(s) all of Lisp derived from? Or something else? Is there a (definitive) source out there?