Why does Elisp (member '3 '(1 2 3 4 5 6))
return (3 4 5 6)
instead of t
(true) or 3
, or (3)
?
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?