From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.user Subject: Re: A value for "nothing" Date: Mon, 27 Aug 2018 17:29:33 -0400 Message-ID: <87k1obsdky.fsf@netris.org> References: <21036238.c6yQEfjfIL@aleksandar-ixtreme-m5740> <8736v0v2b8.fsf@netris.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1535405381 14650 195.159.176.226 (27 Aug 2018 21:29:41 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 27 Aug 2018 21:29:41 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Cc: guile-user@gnu.org, hiphish@posteo.de To: John Cowan Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Aug 27 23:29:37 2018 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fuP4q-0003gz-9Y for guile-user@m.gmane.org; Mon, 27 Aug 2018 23:29:36 +0200 Original-Received: from localhost ([::1]:35196 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fuP6w-0003Gs-ND for guile-user@m.gmane.org; Mon, 27 Aug 2018 17:31:46 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:56171) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fuP6R-0003Fu-Ba for guile-user@gnu.org; Mon, 27 Aug 2018 17:31:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fuP6N-0002np-7s for guile-user@gnu.org; Mon, 27 Aug 2018 17:31:15 -0400 Original-Received: from world.peace.net ([64.112.178.59]:47954) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fuP6M-0002mN-N8 for guile-user@gnu.org; Mon, 27 Aug 2018 17:31:11 -0400 Original-Received: from mhw by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1fuP6L-0006Sv-2A; Mon, 27 Aug 2018 17:31:09 -0400 In-Reply-To: (John Cowan's message of "Mon, 27 Aug 2018 09:00:26 -0400") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 64.112.178.59 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:14795 Archived-At: John Cowan writes: > On Mon, Aug 27, 2018 at 12:54 AM Mark H Weaver wrote: > > However, in most cases, symbols are precisely what's needed to represent > distinguished atomic objects such as this. > > The problem with symbols in Scheme is that they are not namespaced, so > two different modules can use the same symbols in different ways. > Exported variable bindings can be managed with the module system. Right, but this is only a problem if the same variable might contain either a MessagePack or some other data type that uses the same symbol to mean something different. In other words, this is only a problem if you need to be able to distinguish between a MessagePack and some other data type. However, given that a MessagePack can also be a boolean, integer, float, string, etc, and that the plan is apparently to use the corresponding native Scheme objects to represent these things (which I agree is a good idea), it will already be infeasible to distinguish between a MessagePack and anything else. So, while I agree that this is something to keep in mind when using symbols in Scheme, I think it's a moot point in this case. On the other hand, one disadvantage with using record types is that they cannot be written and then read back in with the standard Scheme reader. If this is considered desirable, it might be a point in favor of using symbols instead of records. Mark