unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Tom Tromey'" <tromey@redhat.com>,
	"'Eric Schulte'" <eric.schulte@gmx.com>
Cc: egnartsms@gmail.com, rms@gnu.org, lennart.borgman@gmail.com,
	Emacs-devel@gnu.org, nix@esperi.org.uk, monnier@iro.umontreal.ca,
	dancol@dancol.org
Subject: RE: CL package serious deficiencies
Date: Fri, 10 Feb 2012 08:23:25 -0800	[thread overview]
Message-ID: <A7ECC271075D4AA4A83352FF7C55DADA@us.oracle.com> (raw)
In-Reply-To: <877gzufzy8.fsf@fleche.redhat.com>

> Elisp sort of has keyword arguments.  They just aren't part of the
> language, so they are reimplemented by hand in various functions.
> You can find many examples in Emacs, including even functions in C,
> e.g., dbus-call-method or make-network-process.

Right.

It might also be worth distinguishing (a) the relative lack/dearth of
function-valued arguments that have the effect of certain important keyword
args, such as :test and :key from (b) the lack of support for keyword arguments
per se.

I like CL keyword arguments personally, but I think that (a) is more important
than (b), if there is pushback for such stuff.

Example: It is far more important to have a sequence function that accepts a
function-valued TEST argument than it is to be able to pass it such an argument
using the keyword :test.  Being able to pass args in any order by specifying
them using keywords (e.g. :test) is, in my book, less important.

Yes, keywords can be convenient and sometimes less verbose (yes), but what's
really missing IMO are the Common-Lisp sequence etc. functions that accept such
function-valued args, and not the fact that you can pass those args using
keywords.

I could be wrong, but my guess is that Richard's resistance to keyword args is
mainly about (b), not (a), that is, the use of keywords per se, and not general
sequence etc. functions that accept function-valued args.

Emacs Lisp does have some functions that accept functions as args, of course,
but the language has generally not been optimized to support passing functional
args, so the use of such higher-order functions has been somewhat limited in
practice.

Support for lexical binding changes that game, opening more possibilities.  But
additional work would be needed to really make such Common-Lisp thingies
performant in Emacs Lisp.




  reply	other threads:[~2012-02-10 16:23 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 [this message]
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
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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=A7ECC271075D4AA4A83352FF7C55DADA@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=Emacs-devel@gnu.org \
    --cc=dancol@dancol.org \
    --cc=egnartsms@gmail.com \
    --cc=eric.schulte@gmx.com \
    --cc=lennart.borgman@gmail.com \
    --cc=monnier@iro.umontreal.ca \
    --cc=nix@esperi.org.uk \
    --cc=rms@gnu.org \
    --cc=tromey@redhat.com \
    /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 public inbox

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

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 read-only IMAP folder(s) and NNTP newsgroup(s).