all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andreas Politz <politza@fh-trier.de>
To: help-gnu-emacs@gnu.org
Subject: Re: syntax:  anonymous vs. named functions
Date: Mon, 17 Nov 2008 09:08:42 +0100	[thread overview]
Message-ID: <1226909392.39784@arno.fh-trier.de> (raw)
In-Reply-To: <mailman.552.1226883997.26697.help-gnu-emacs@gnu.org>

Drew Adams wrote:
[...]
> 
> The reason that a lambda form is not allowed as a functional COLLECTION argument
> is that although a lambda form can generally be used as a function, it
> _evaluates_ to a list (whose car is `lambda' etc. - that is, to itself).
> 
> And since COLLECTION can also be an explicit list of candidates, it would be
> problematic to distinguish the intention of passing an argument whose value is a
> list that has the form (lambda (...) ...). This is a feature of Lisp's
> program=data quality.

Mhh, more likely a problem of elisp.

CL-USER> (functionp #'(lambda nil))
T
CL-USER> (functionp '(lambda nil))
NIL

In elisp both expressions evaluate as T. I like the CL feature better ;)

-ap
> 
>> ps, does the collection function really need to accept all three
>> arguments (string, predicate and t/nil/lambda)?
> 
> Yes. It need not _use_ all three, or even any of them, to do its job, but it
> must accept three arguments. The primitive Emacs completion functions depend on
> it having such a signature.
> 
>> i know you say that
>> (do-completion (string)) is a function application, but what would a
>> function look like in this case?  just like this: do-completion (that
>> is, a simple evaluated symbol)?  
> 
> Correct. You would pass the function `do-completion' this way:
> 
>  (completing-read "Name: " #'do-completion nil t)
> 
> 
> 


      parent reply	other threads:[~2008-11-17  8:08 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.201.1226528857.26697.help-gnu-emacs@gnu.org>
2008-11-12 23:08 ` starting an external command from emacs Dan Espen
2008-11-13  3:48   ` Matt Price
     [not found]   ` <mailman.217.1226563070.26697.help-gnu-emacs@gnu.org>
2008-11-13 13:54     ` Dan Espen
2008-11-13 15:50 ` Xah
2008-11-14 13:24   ` break a chunk of text into a list of lines Matt Price
2008-11-14 15:33   ` starting an external command from emacs Matt Price
     [not found]   ` <mailman.365.1226676836.26697.help-gnu-emacs@gnu.org>
2008-11-14 19:43     ` Xah
2008-11-14 20:31     ` Andreas Politz
     [not found]   ` <mailman.359.1226672766.26697.help-gnu-emacs@gnu.org>
2008-11-14 19:33     ` break a chunk of text into a list of lines Xah
2008-11-14 20:43     ` Andreas Politz
2008-11-15 16:35       ` interactive function: generate tab-completion list with another function Matt Price
2008-11-16  3:42         ` syntax: anonymous vs. named functions Matt Price
2008-11-16  8:01           ` Drew Adams
2008-11-16 15:48             ` Matt Price
2008-11-17  1:06               ` Drew Adams
     [not found]               ` <mailman.552.1226883997.26697.help-gnu-emacs@gnu.org>
2008-11-17  8:08                 ` Andreas Politz [this message]

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=1226909392.39784@arno.fh-trier.de \
    --to=politza@fh-trier.de \
    --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.