all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: Nix <nix@esperi.org.uk>, Emacs-devel@gnu.org
Subject: Re: CL package serious deficiencies
Date: Fri, 10 Feb 2012 13:24:00 -0500	[thread overview]
Message-ID: <jwvipje3670.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <8739aiogmw.fsf@gnus.org> (Lars Ingebrigtsen's message of "Fri, 10 Feb 2012 16:24:55 +0100")

>> I've used incf occasionally, but don't find it terribly important.
> I find it adds readability, since you don't have to see that
> "(setq foo (1+ foo))" has the same `foo' both places.

No disagreement (I also dislike such duplication, which is why I insist
on using (set (make-local-variable 'var) val)), I just don't find it's
often enough important (in my experience it's not used that often, and
most times it's used, it's used on locally-bound variables with short
names).
This said, if/when we have `setf', then there's no reason not to have
`incf'.

>>> `plusp'?
>> Never used it.  (> n 0) is no shorter than (plusp n) and is just as
>> clear, so I really don't see the benefit.
> Again, I think it's usually more readable, because (as with `zerop')
> it's immediately obvious what the condition is.  Especially with longer
> parameters:

> (plusp (1+ (foo-thing-that-computes-something)))
> vs
> (> (1+ (foo-thing-that-computes-something)) 0)

that's because you write it wrong:

  (< 0 (1+ (foo-thing-that-computes-something)))
aka
  (< -1 (foo-thing-that-computes-something))

aka (assuming it's integer)

  (<= 0 (foo-thing-that-computes-something))

> I think the `-if' and `-if-not' help with reading comprehension, because
> you're signalling in the function name what you mean to do, and you
> don't have to read the predicate as thoroughly.  And the predicate can
> be written clearer, too.  If you don't have both forms, the predicate
> often tends to look like `(lambda (foo) (not ...))', which makes my
> brain hurt.

That's just a question of habit, really.

[ You might prefer "delete-if (¬ ∘ pred) list", of course.  ]


        Stefan



  reply	other threads:[~2012-02-10 18:24 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-06 14:18 CL package serious deficiencies egnarts-ms
2012-02-06 21:08 ` Stefan Monnier
2012-02-06 21:53   ` Drew Adams
2012-02-07  3:02     ` Stefan Monnier
2012-02-07 12:04       ` egnarts-ms
2012-02-07 17:36         ` Stefan Monnier
2012-02-08 13:15           ` egnarts-ms
2012-02-08 19:07             ` Stefan Monnier
2012-02-07 12:29     ` egnarts-ms
2012-02-07 18:43     ` Nix
2012-02-07 19:11       ` Lennart Borgman
2012-02-07 19:15         ` Juanma Barranquero
2012-02-07 20:54           ` Lennart Borgman
2012-02-07 21:03         ` John Wiegley
2012-02-07 21:06         ` Nix
2012-02-07 21:08           ` Lennart Borgman
2012-02-07 21:10             ` Nix
2012-02-07 21:12               ` Lennart Borgman
2012-02-07 21:23                 ` Nix
2012-02-07 21:29                   ` Lennart Borgman
2012-02-07 21:30                     ` Nix
2012-02-07 21:32                   ` Glenn Morris
2012-02-07 21:34                   ` Daniel Colascione
2012-02-07 21:42                     ` Tom Tromey
2012-02-08  1:53                       ` Leo
2012-02-07 22:16                     ` Alan Mackenzie
2012-02-07 22:19                       ` Nix
2012-02-08 13:28                     ` Richard Stallman
2012-02-08 15:00                       ` Tom Tromey
2012-02-09  6:29                         ` Richard Stallman
2012-02-09 14:23                           ` Eric Schulte
2012-02-10 15:44                             ` Richard Stallman
2012-02-10 18:36                               ` Tom Tromey
2012-02-10 15:52                             ` Tom Tromey
2012-02-10 16:23                               ` Drew Adams
2012-02-10 16:42                               ` Ted Zlatanov
2012-02-09  6:30                         ` Richard Stallman
2012-02-09 13:56                           ` Ted Zlatanov
2012-02-10 15:44                             ` Richard Stallman
2012-02-10 18:34                               ` Tom Tromey
2012-02-10 15:48                           ` Tom Tromey
2012-02-10 18:29                             ` Stefan Monnier
2012-02-08  2:07                   ` Stephen J. Turnbull
2012-02-07 22:41               ` Glenn Morris
2012-02-07 23:10                 ` Nix
2012-02-08 13:42                   ` Eric Schulte
2012-02-08 13:46                     ` Lennart Borgman
2012-02-08 13:51                       ` Eric Schulte
2012-02-08 15:29                         ` Lennart Borgman
2012-02-08 15:39                           ` Eric Schulte
2012-02-08 15:43                             ` Lennart Borgman
2012-02-08 14:26                     ` Drew Adams
2012-02-08 13:15         ` Teemu Likonen
2012-02-09  7:33           ` spam- or registry-related things in Gnus need cl at run-time? (was: CL package serious deficiencies) Reiner Steib
2012-02-09 16:39             ` spam- or registry-related things in Gnus need cl at run-time? Teemu Likonen
2012-02-07 23:48       ` CL package serious deficiencies Stefan Monnier
2012-02-07 23:52         ` Nix
2012-02-08  0:10           ` Lennart Borgman
2012-02-08  0:15             ` Nix
2012-02-08  1:51               ` Stefan Monnier
2012-02-08 23:43                 ` Nix
2012-02-09 21:34                   ` Stefan Monnier
2012-02-08  2:13           ` Stephen J. Turnbull
2012-02-08  2:19             ` Lennart Borgman
2012-02-08  4:23               ` Stephen J. Turnbull
2012-02-08 11:00                 ` Lennart Borgman
2012-02-08 17:42           ` Richard Stallman
2012-02-08 19:54             ` Stefan Monnier
2012-02-08  0:38         ` Daniel Colascione
2012-02-08  1:32           ` Lennart Borgman
2012-02-08  1:53           ` Stefan Monnier
2012-02-08  2:26             ` Daniel Colascione
2012-02-08 22:28       ` Lars Ingebrigtsen
2012-02-08 22:32         ` Lennart Borgman
2012-02-08 23:35         ` Nix
2012-02-09 19:42           ` Richard Stallman
2012-02-09 19:46             ` Nix
2012-02-10  1:09         ` John Wiegley
2012-02-10 14:38         ` Stefan Monnier
2012-02-10 15:08           ` Juanma Barranquero
2012-02-10 15:35             ` Drew Adams
2012-02-10 18:15               ` Stefan Monnier
2012-02-10 18:21                 ` Drew Adams
2012-02-10 15:24           ` Lars Ingebrigtsen
2012-02-10 18:24             ` Stefan Monnier [this message]
2012-02-10 18:26               ` Lars Ingebrigtsen
2012-02-10 18:47               ` Johan Bockgård
2012-02-10 17:12           ` Helmut Eller
2012-02-10 18:51             ` Stefan Monnier
2012-02-10 18:55               ` Lars Ingebrigtsen
2012-02-10 19:08               ` Teemu Likonen
2012-02-11 13:25                 ` Juanma Barranquero
2012-02-11 16:56                   ` Johan Bockgård
2012-02-11 22:33                     ` Juanma Barranquero
2012-02-12  4:41                 ` Stefan Monnier
2012-02-12 15:53                   ` Teemu Likonen
2012-02-12 16:52                     ` Stefan Monnier
2012-02-12 16:55                     ` Stefan Monnier
2012-02-10 23:56               ` Helmut Eller
2012-02-12  4:47                 ` Stefan Monnier
2012-02-12 17:39                   ` Helmut Eller
2012-02-12 18:15                     ` Stefan Monnier
2012-02-12 18:58                       ` Helmut Eller
2012-02-19 12:52         ` Dimitri Fontaine

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=jwvipje3670.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=Emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    --cc=nix@esperi.org.uk \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.