From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Yuval Langer Newsgroups: gmane.lisp.guile.bugs Subject: bug#59595: [PATCH 1/3] Add examples and incomplete wordings. Date: Fri, 25 Nov 2022 22:14:34 +0200 Message-ID: <20221125201436.35241-1-yuvallangerontheroad@gmail.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18935"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Yuval Langer To: 59595@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Sat Nov 26 05:11:25 2022 Return-path: Envelope-to: guile-bugs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oymXF-0004pA-3g for guile-bugs@m.gmane-mx.org; Sat, 26 Nov 2022 05:11:25 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oymWx-0004Sj-8l; Fri, 25 Nov 2022 23:11:07 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oymWv-0004Rv-Ej for bug-guile@gnu.org; Fri, 25 Nov 2022 23:11:05 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oymWu-0006x4-NE for bug-guile@gnu.org; Fri, 25 Nov 2022 23:11:04 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oymWt-0003Yd-Gh for bug-guile@gnu.org; Fri, 25 Nov 2022 23:11:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Yuval Langer Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Sat, 26 Nov 2022 04:11:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59595 X-GNU-PR-Package: guile X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-guile@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.166943582313571 (code B ref -1); Sat, 26 Nov 2022 04:11:03 +0000 Original-Received: (at submit) by debbugs.gnu.org; 26 Nov 2022 04:10:23 +0000 Original-Received: from localhost ([127.0.0.1]:37614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oymWE-0003Wi-O4 for submit@debbugs.gnu.org; Fri, 25 Nov 2022 23:10:23 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:46712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oyf5x-0002Ct-AU for submit@debbugs.gnu.org; Fri, 25 Nov 2022 15:14:45 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oyf5x-0007zm-5k for bug-guile@gnu.org; Fri, 25 Nov 2022 15:14:45 -0500 Original-Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oyf5v-0002lu-Lc for bug-guile@gnu.org; Fri, 25 Nov 2022 15:14:44 -0500 Original-Received: by mail-wr1-x434.google.com with SMTP id bs21so8311578wrb.4 for ; Fri, 25 Nov 2022 12:14:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Wj++yw+BBC2iESJ589GOVKwWr+zTvuf3JRkcvp6Cr2I=; b=l6QiBzE9XO/NcY0tkIAND6otAR8eFYjdXuOScDbup+UDqkWSnkC7Awq5CeXPeByZZu IA76JQRc/BxRO9mbRYsd8vmRfqTVg/IkH3PBvja50kC+fN+dd54kWs+/LgOLaJ43QOLt Jwr3TYfl679F0XeRfuJ8aUGvD2EcUuQv3a8mSg+ZqvYbQaOvxjL/VVv6K0pU2uV1CWpX UCQF3gFNUipMfRFNMMBnFWfG3Z8J7Di9jaFTMv1dvtbRKrIrSn1r2IKy7GxcvcivRR56 t+hxteIFfiNHn57JsPl1tw9KbN2JxrKY2p8n4+hrvKYS4EqHSRKqEBzKAqLy2dmWDVm2 xyDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Wj++yw+BBC2iESJ589GOVKwWr+zTvuf3JRkcvp6Cr2I=; b=J8rDypWXvFlI51f8W9wnQRrxv921YJFVIke9iSVzrmkKrfj62AXHNt9VTIKzI85Ss8 3O0EP/qxh9mwVENuj8U62l8AbkwDkpTq+eDhxfo07jtK14MWSj2STMJiocCs3EPuj9h0 vQu4T77zzrgrG05SGKLdCe7GBpORYRToQfW72ICiUB8mJoXngYHMFr8E60F+gDg/PgdQ p6pzvzPjRFP5Te9hBDEdecsvykzh7x2j/yzU+HUn+8svKFoZMz8Rmhw687Vd+wGSoZc6 vAqEIs9FZsBuu0Tiz4JOdupmJkoysv8Rzj6jUkEYFpcdTV/A9fN1vtSRm4cxrxGUEWWF 8kuA== X-Gm-Message-State: ANoB5pnrdwfaZ48J8juoDCCCRZpAxQgVznJA41VGgp9AIV2lPSVRV/np wa/O0P9sBKinOH7SsZPsCFKrXQK1gdM= X-Google-Smtp-Source: AA0mqf5QgOj6LshvCxHLZ0hryP6iLtOwNF6aQBKwlk84CPr6JkNceIWvPvISD9wiel896OOdU8Zrkg== X-Received: by 2002:a5d:52cb:0:b0:236:4a87:2c25 with SMTP id r11-20020a5d52cb000000b002364a872c25mr24123785wrv.19.1669407281312; Fri, 25 Nov 2022 12:14:41 -0800 (PST) Original-Received: from localhost.localdomain ([109.253.170.222]) by smtp.gmail.com with ESMTPSA id a12-20020adfe5cc000000b0022cc3e67fc5sm4301419wrn.65.2022.11.25.12.14.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Nov 2022 12:14:40 -0800 (PST) X-Mailer: git-send-email 2.30.2 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=yuvallangerontheroad@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 25 Nov 2022 23:10:16 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.bugs:10447 Archived-At: --- doc/ref/api-data.texi | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi index 8658b9785..8c18b4d40 100644 --- a/doc/ref/api-data.texi +++ b/doc/ref/api-data.texi @@ -4767,7 +4767,7 @@ It also allows further properties to use the same symbols among their possible values without becoming ambiguous: @lisp -(define car1-properties '((colour . red) +(define car2-properties '((colour . red) (transmission . manual) (fuel . unleaded) (steering . power-assisted) @@ -4793,6 +4793,37 @@ extract or change individual pieces of information: (locking . manual))) @end lisp +Notice that if we try the same @code{assq-set!} call with +@code{car2-properties}, we get an exception: + +@lisp +(assq-set! car2-properties 'seat-colour 'black) +@end lisp + +This is due to the fact that literal alists are immutable. If you want +to mutate an alist, you must define it using the @code{acons} +constructor: + +@lisp +(define car3-properties (acons 'colour 'red + (acons 'transmission 'manual + (acons 'fuel 'unleaded + (acons 'steering 'power-assisted + (acons 'seat-colour 'red + (acons 'locking 'manual '()))))))) + +(assq-ref car3-properties 'seat-colour) @result{} red +(assq-set! car3-properties 'seat-colour 'black) +@result{} +((colour . red) + (transmission . manual) + (fuel . unleaded) + (steering . power-assisted) + (seat-colour . black) + (locking . manual))) +(assq-ref car3-properties 'seat-colour) @result{} black +@end lisp + Hash tables also have keys, and exactly the same arguments apply to the use of symbols in hash tables as in association lists. The hash value that Guile uses to decide where to add a symbol-keyed entry to a hash -- 2.30.2