From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.devel Subject: RE: CL package serious deficiencies Date: Fri, 10 Feb 2012 08:23:25 -0800 Message-ID: References: <33271707.post@talk.nabble.com><87fwemcwlx.fsf@spindle.srvr.nix><87zkcubbfc.fsf@spindle.srvr.nix><87vcnibb9t.fsf@spindle.srvr.nix><87r4y6bams.fsf@spindle.srvr.nix> <4F3198CE.9000900@dancol.org> <87aa4skmm1.fsf@gmx.com> <877gzufzy8.fsf@fleche.redhat.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1328891043 25361 80.91.229.3 (10 Feb 2012 16:24:03 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 10 Feb 2012 16:24:03 +0000 (UTC) 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 To: "'Tom Tromey'" , "'Eric Schulte'" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Feb 10 17:24:00 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RvtGQ-0006dN-Dq for ged-emacs-devel@m.gmane.org; Fri, 10 Feb 2012 17:23:58 +0100 Original-Received: from localhost ([::1]:50976 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvtGP-0005UA-VF for ged-emacs-devel@m.gmane.org; Fri, 10 Feb 2012 11:23:57 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:48400) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvtGI-0005Sy-D8 for Emacs-devel@gnu.org; Fri, 10 Feb 2012 11:23:55 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RvtGG-0003EG-RF for Emacs-devel@gnu.org; Fri, 10 Feb 2012 11:23:50 -0500 Original-Received: from acsinet15.oracle.com ([141.146.126.227]:50859) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvtGG-0003AE-L4; Fri, 10 Feb 2012 11:23:48 -0500 Original-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by acsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id q1AGNV4h025073 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 10 Feb 2012 16:23:32 GMT Original-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q1AGNUrq002521 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 10 Feb 2012 16:23:30 GMT Original-Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q1AGNT5q020614; Fri, 10 Feb 2012 10:23:29 -0600 Original-Received: from dradamslap1 (/10.159.36.32) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 10 Feb 2012 08:23:29 -0800 X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <877gzufzy8.fsf@fleche.redhat.com> Thread-Index: AczoDAsThln13cqXQjSiHLySo1zfcQAAM1HA X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090208.4F354484.00E8,ss=1,re=0.000,fgs=0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 1) X-Received-From: 141.146.126.227 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:148437 Archived-At: > 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.