Gnus development mailing list
 help / color / mirror / Atom feed
From: Reiner Steib <4.uce.03.r.s@nurfuerspam.de>
Subject: Re: Using CL in Gnus
Date: Thu, 27 Nov 2003 23:41:31 +0100	[thread overview]
Message-ID: <v9wu9lmo2s.fsf@marauder.physik.uni-ulm.de> (raw)
In-Reply-To: <m3llq2q5ze.fsf@hamster.pflaesterer.de>

On Wed, Nov 26 2003, Karl Pflästerer wrote:

> On 26 Nov 2003, Reiner Steib <- 4.uce.03.r.s@nurfuerspam.de wrote:
>
>> Do I understand the docs correctly, that mapc and mapcar _only_ differ
>> in the result they give, but not in the side effects?
>
> No they differ  more.  `mapc' can take an arbitrary number of sequences
> as arguments `mapcar' only one.

I don't doubt your explanations, but I don't understand it from the
doc-strings (GNU Emacs 21.3):

,----[ C-h f mapc RET ]
| mapc is a built-in function.
| (mapc FUNCTION SEQUENCE)
| 
| Apply FUNCTION to each element of SEQUENCE for side effects only.
| Unlike `mapcar', don't accumulate the results.  Return SEQUENCE.
| SEQUENCE may be a list, a vector, a bool-vector, or a string.
`----

,----[ C-h f mapcar RET ]
| mapcar is a built-in function.
| (mapcar FUNCTION SEQUENCE)
| 
| Apply FUNCTION to each element of SEQUENCE, and make a list of the results.
| The result is a list just as long as SEQUENCE.
| SEQUENCE may be a list, a vector, a bool-vector, or a string.
`----

> Furthermore IMO if you read `mapc' you know a function is used only
> for the side effects it has; on the other hand `mapcar' shouldn't be
> used for side effects IMO.

Thanks for your explanations.  Is this the case in the examples of
mapc from gnus.el and gnus-agent.el?

>> check if we could use mapcar instead of mapc in gnus.el and
>> gnus-agent?  IMHO we should replace them, if there's no disadvantage.
>
> Better check for the Emacs version and provide a macro.  People have to
> read code and the meaning of mapc is different from the one of mapcar.
>
> [...]
>> To make clear that the code in Gnus 5.10 _should_ not use mapc (beside
>
> I don't understand your point here. 

Well, if programmers see mapc at many places in Gnus code, they might
be tempted to use it without thinking about possible alternatives
(alternatives w/o using CL functions).  But -as we are in feature
freeze- we will not have a significant amount of _new_ code.  Thus
_if_ there is no disadvantage in using mapcar in gnus.el and
gnus-agent.el (only 4 occurrences in total, see above) we _may_
replace them instead of providing a "compatibility hack".

Maybe it's better if I cease this thread, because I'm sure you and
Katsumi know much more about this (not being ironic at all here!) and
he did the right thing.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo--- PGP key available via WWW   http://rsteib.home.pages.de/




  reply	other threads:[~2003-11-27 22:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-24 23:29 gnus-agentize versus emacs 20 mapc Kevin Ryde
2003-11-24 23:57 ` Katsumi Yamaoka
2003-11-25  3:45   ` Kevin Greiner
2003-11-25  4:18     ` Katsumi Yamaoka
2003-11-25 21:47     ` Kevin Ryde
2003-11-26  2:13       ` Katsumi Yamaoka
2003-11-26 11:34         ` Using CL in Gnus (was: gnus-agentize versus emacs 20 mapc) Reiner Steib
2003-11-26 12:23           ` Using CL in Gnus Katsumi Yamaoka
2003-11-26 17:38             ` Reiner Steib
2003-11-26 19:46               ` Karl Pflästerer
2003-11-27 22:41                 ` Reiner Steib [this message]
2003-11-28 16:30                   ` Karl Pflästerer
2003-11-28 17:08                     ` Jesper Harder
2003-11-29  8:04                       ` Miles Bader
2003-11-29  9:10                         ` Jesper Harder
2003-11-29 12:37                           ` Miles Bader
2003-12-01 21:23               ` Ted Zlatanov
2003-12-01 22:54                 ` Katsumi Yamaoka
2003-11-30 13:22           ` Using CL in Gnus (was: gnus-agentize versus emacs 20 mapc) Per Abrahamsen
2003-11-28 21:31         ` gnus-agentize versus emacs 20 mapc Kevin Ryde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=v9wu9lmo2s.fsf@marauder.physik.uni-ulm.de \
    --to=4.uce.03.r.s@nurfuerspam.de \
    --cc=reiner.steib@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).