GNU bug report logs - #40972
27.0.91; assoc TESTFN's args reversed?

Previous Next

Package: emacs;

Reported by: Shigeru Fukaya <shigeru.fukaya <at> gmail.com>

Date: Wed, 29 Apr 2020 21:16:02 UTC

Severity: minor

Tags: notabug, wontfix

Found in version 27.0.91

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

Full log


Message #17 received at control <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 40972 <at> debbugs.gnu.org, Shigeru Fukaya <shigeru.fukaya <at> gmail.com>
Subject: Re: bug#40972: 27.0.91; assoc TESTFN's args reversed?
Date: Wed, 9 Sep 2020 06:22:18 -0700
tags 40972 + wontfix notabug
close 40972
thanks

Michael Heerdegen <michael_heerdegen <at> web.de> writes:

> Shigeru Fukaya <shigeru.fukaya <at> gmail.com> writes:
>
>> It seems to me, for third argument of `assoc', arguments are passed in a
>> reverse order.
>>
>> (assoc "assoc" '(("cl-assoc" A) ("cl-member" B))
>>        (lambda (x y) (equal (concat "cl-" x) y)))
>> ==> nil
>>
>> (assoc "assoc" '(("cl-assoc" A) ("cl-member" B))
>>        (lambda (y x) (equal (concat "cl-" x) y)))
>> ==> ("cl-assoc" A)
>>
>> Or, is this intended behavior??
>
> Dunno what others expect, but note that your predicate is not an
> equality predicate (it's not symmetric), and the docstring doesn't
> specify a behavior for this case.

As Michael points out, the equality operation is symmetric and therefore
by definition the order does not matter.  We therefore cannot say if X=Y
or Y=X is "more correct": they are equivalent.

In any case, I think it will cause more problems to switch the argument
order at this point, since there might be code out there that relies on
this (undocumented) behavior.  So I'm closing this bug.




This bug report was last modified 4 years and 310 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.