From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: guile and elisp Date: Mon, 29 Mar 2010 14:01:40 +0200 Message-ID: <874ojze3q3.fsf@gnu.org> References: <87tyrzfrik.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1269864169 32535 80.91.229.12 (29 Mar 2010 12:02:49 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 29 Mar 2010 12:02:49 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Mar 29 14:02:45 2010 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1NwDg5-00053l-0H for guile-devel@m.gmane.org; Mon, 29 Mar 2010 14:02:45 +0200 Original-Received: from localhost ([127.0.0.1]:33862 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NwDg4-0001OE-3c for guile-devel@m.gmane.org; Mon, 29 Mar 2010 08:02:44 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NwDfP-0001Ai-Id for guile-devel@gnu.org; Mon, 29 Mar 2010 08:02:03 -0400 Original-Received: from [140.186.70.92] (port=56293 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NwDfN-0001AZ-NW for guile-devel@gnu.org; Mon, 29 Mar 2010 08:02:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NwDfK-0005f4-Jo for guile-devel@gnu.org; Mon, 29 Mar 2010 08:02:01 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:59781) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NwDfK-0005eq-6P for guile-devel@gnu.org; Mon, 29 Mar 2010 08:01:58 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1NwDfF-0004dr-RI for guile-devel@gnu.org; Mon, 29 Mar 2010 14:01:53 +0200 Original-Received: from acces.bordeaux.inria.fr ([193.50.110.5]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 29 Mar 2010 14:01:53 +0200 Original-Received: from ludo by acces.bordeaux.inria.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 29 Mar 2010 14:01:53 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 45 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: acces.bordeaux.inria.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 9 Germinal an 218 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:8yizUTsl79cRuwrH7TSfRJLPb+E= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:10111 Archived-At: Hello! Andy Wingo writes: > On Mon 29 Mar 2010 10:42, ludo@gnu.org (Ludovic Courtès) writes: [...] >> - Scheme’s #f/() are more expressive that elisp’s nil. They can be >> easily mapped to nil, whereas it seems hard to automatically choose >> whether to map nil to #f or to (). This also supports the idea of >> requiring Scheme code to make explicit conversions. > > Sure, though it's easy to map all three values to "not", "null?", and > "boolean?", in those predicates' incarnations in both languages. For > that reason I think we can avoid conversion of values. Well, yes, conversions can be avoided in many but not all situations, as the corner cases you described illustrate (notably equality predicates and hash functions). Maybe it’s a good middle ground, though. I’m wondering to what extent such a semi-transparent solution could “surprise” programmers. >> - Elisp should be considered “legacy”. Whenever something can’t be >> made transparent, I’d consider Scheme first-class and Elisp >> second-class. > > Hoo, that's a really broad definition of legacy. Yes. :-) > Even if all elisp hackers were to stop hacking elisp today, we'd > probably still have elisp code 10 years from now. Hopefully we don't > have to make a "first-class"/"second-class" distinction, besides the > obvious one that Scheme is first-class to Scheme, and Elisp to Elisp, > and so on. Sure. What I meant is that Scheme’s disjoint boolean type should be considered the Right Thing. I’d rather keep it really disjoint, at the cost of weaker/less trivial interop, than going the elisp road too far. Thanks, Ludo’.