all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: help-gnu-emacs@gnu.org
Subject: Re: Why aren't `find`, `find-if`, `remove-if` part of Emacs Lisp?
Date: Wed, 25 Jun 2014 09:35:15 -0400	[thread overview]
Message-ID: <jwv38etundd.fsf-monnier+gnu.emacs.help@gnu.org> (raw)
In-Reply-To: wfkeionpthgo.fsf@sap.com

>> Agreed.  They also work OK for macros since those are not supposed to be
>> executed at run-time.  Keyword arguments are particularly problematic in
>> Elisp where the language implementations are all fairly simplistic with
>> very limited optimizations.
> That might be a description of todays implementation.  I would assume
> that you could compile away the keyword parameters relativly easily: you
> basically attach a define-compiler-macro (another CL macro) which maps
> the keyword parameters to positional parameters.

Of course, cl-lib does this kind of thing, but it's a lot of work, so it
only covers some cases, and if you ever want to pass `member' to another
function define-compiler-macro won't help you and you get a major
performance penalty.

I agree with you that naming arguments can be *very* helpful.  But given
the current state of Elisp implementation, using keyword arguments with
functions that might be performance sensitive is not a good idea.


        Stefan


  reply	other threads:[~2014-06-25 13:35 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-17 17:13 Why aren't `find`, `find-if`, `remove-if` part of Emacs Lisp? Nicolas Petton
2014-06-17 17:28 ` Stefan Monnier
2014-06-17 18:36   ` Nicolas Petton
2014-06-17 18:56     ` Doug Lewan
2014-06-17 19:06       ` Nicolas Petton
2014-06-17 19:55         ` Doug Lewan
2014-06-17 22:16     ` Stefan Monnier
2014-06-18 11:00       ` Nicolas Petton
     [not found]       ` <mailman.3879.1403089222.1147.help-gnu-emacs@gnu.org>
2014-06-18 14:36         ` Stefan Monnier
2014-06-18 14:43         ` Barry Margolin
2014-06-18 15:43           ` Damien Cassou
2014-06-18 16:31             ` Phillip Lord
     [not found]           ` <mailman.3896.1403106263.1147.help-gnu-emacs@gnu.org>
2014-06-24 13:51             ` Christoph Wedler
2014-06-24 16:24               ` Barry Margolin
2014-06-25  3:22                 ` Stefan Monnier
2014-06-25  4:08                   ` Leo Liu
     [not found]                   ` <mailman.4252.1403669342.1147.help-gnu-emacs@gnu.org>
2014-06-25 13:46                     ` Stefan Monnier
     [not found]                 ` <mailman.4251.1403666567.1147.help-gnu-emacs@gnu.org>
2014-06-25 10:24                   ` Christoph Wedler
2014-06-25 13:35                     ` Stefan Monnier [this message]
2014-06-25 14:09                     ` Stefan Monnier
2014-06-25 15:37                     ` Barry Margolin
2014-06-25 23:44                       ` Robert Thorpe
2014-06-18 14:43         ` Pascal J. Bourguignon
     [not found] ` <mailman.3837.1403026153.1147.help-gnu-emacs@gnu.org>
2014-06-20  0:20   ` WJ
2014-06-20 13:45     ` Stefan Monnier
     [not found] <mailman.3836.1403025251.1147.help-gnu-emacs@gnu.org>
2014-06-17 21:42 ` Barry Margolin
     [not found] <mailman.4322.1403739913.1147.help-gnu-emacs@gnu.org>
2014-06-26  0:37 ` Stefan Monnier
2014-06-26  5:27 ` Barry Margolin

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=jwv38etundd.fsf-monnier+gnu.emacs.help@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=help-gnu-emacs@gnu.org \
    /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.