[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#27584: 26.0.50; alist-get: Add optional arg TESTFN
From: |
Eli Zaretskii |
Subject: |
bug#27584: 26.0.50; alist-get: Add optional arg TESTFN |
Date: |
Sat, 08 Jul 2017 10:14:54 +0300 |
> From: Tino Calancha <tino.calancha@gmail.com>
> Date: Sat, 8 Jul 2017 16:02:12 +0900 (JST)
> cc: Nicolas Petton <nicolas@petton.fr>, monnier@iro.umontreal.ca,
> 27584@debbugs.gnu.org, Tino Calancha <tino.calancha@gmail.com>
>
> > Bonus points for simplifying the code by determining TESTFN up front,
> > then having only one of the above two clauses.
> Do you mean something like this?
>
> {
> Lisp_Object tail = list;
> Lisp_Object fn = NILP (testfn) ? Qequal : testfn;
> FOR_EACH_TAIL (tail)
> {
> Lisp_Object car = XCAR (tail);
> if (CONSP (car) && !NILP (call2 (fn, (XCAR (car)), key)))
> return car;
> }
>
> CHECK_LIST_END (tail, list);
> return Qnil;
> }
That's one way, yes. But not necessarily the one I had in mind.
> ;; This is shorter but now the default case, because the call2, is less
> ;; efficient than just using Fequal, right?
Is it? Did you time it?
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, (continued)
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/06
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Stefan Monnier, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/07
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Eli Zaretskii, 2017/07/08
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/08
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN,
Eli Zaretskii <=
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/08
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Eli Zaretskii, 2017/07/08
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/09
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/09
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/11
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/11
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Michael Heerdegen, 2017/07/12
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/14
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Nicolas Petton, 2017/07/14
- bug#27584: 26.0.50; alist-get: Add optional arg TESTFN, Tino Calancha, 2017/07/17