3 ms·
Oh boy. I seem to remember the (member 1 '(1 2 3)) -> t (equal '(1 2) '(1 2)) -> t (member '(1 2) '('(1 2) '(3 4))) -> nil bug. It took me just three h
by glogla 15y ago
Oh boy.
I seem to remember the
(member 1 '(1 2 3)) -> t
(equal '(1 2) '(1 2)) -> t
(member '(1 2) '('(1 2) '(3 4))) -> nil
bug. It took me just three hours, but boy was it annoying. In the end, it was just me not knowing the language of course.
- wccrawford 15y agoI can read just enough of that that it confuses me why it doesn't work. Care to explain?
- glogla 15y agoThe problem is, that (equal 1 1) -> t (equal '(1 2) '(1 2)) -> t (eq 1 1) -> t (eq '(1 2) '(1 2)) -> nil because eq tests for the same symbol, while equal test for the same list. Member uses eq, not equal.
- wccrawford 15y agoAh, I see. Thanks.
- eadvgf 15y agoIf we are talking Common Lisp, the default test is actually EQL. ((eq 1 1) is not necessarily T).