From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#28876: 26.0; (elisp) `Hash Tables': hash table vs alist Date: Wed, 09 Oct 2019 10:33:35 +0200 Message-ID: <87v9synwrk.fsf@gnus.org> References: <7b57e08d-96a4-4887-bd25-afe9e9587c09@default> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="249575"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 28876@debbugs.gnu.org To: Drew Adams Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 09 19:08:40 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iIFS3-0012lw-2I for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Oct 2019 19:08:39 +0200 Original-Received: from localhost ([::1]:52796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iIFS1-00046u-C6 for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Oct 2019 13:08:37 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46541) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iI7Q3-0007aH-DU for bug-gnu-emacs@gnu.org; Wed, 09 Oct 2019 04:34:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iI7Q2-0007FD-6z for bug-gnu-emacs@gnu.org; Wed, 09 Oct 2019 04:34:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43276) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iI7Q2-0007F9-45 for bug-gnu-emacs@gnu.org; Wed, 09 Oct 2019 04:34:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iI7Q1-0000WX-VX for bug-gnu-emacs@gnu.org; Wed, 09 Oct 2019 04:34:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Oct 2019 08:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28876 X-GNU-PR-Package: emacs Original-Received: via spool by 28876-submit@debbugs.gnu.org id=B28876.15706100251973 (code B ref 28876); Wed, 09 Oct 2019 08:34:01 +0000 Original-Received: (at 28876) by debbugs.gnu.org; 9 Oct 2019 08:33:45 +0000 Original-Received: from localhost ([127.0.0.1]:52094 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iI7Pk-0000Vl-Lc for submit@debbugs.gnu.org; Wed, 09 Oct 2019 04:33:44 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:57302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iI7Pf-0000VX-Rw for 28876@debbugs.gnu.org; Wed, 09 Oct 2019 04:33:43 -0400 Original-Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iI7Pc-00051c-Bm; Wed, 09 Oct 2019 10:33:38 +0200 In-Reply-To: <7b57e08d-96a4-4887-bd25-afe9e9587c09@default> (Drew Adams's message of "Tue, 17 Oct 2017 08:45:49 -0700 (PDT)") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:168723 Archived-At: Drew Adams writes: > 1. Please consider saying explicitly that an Elisp hash table is not a > multimap. > > This is another way in which it differs from an alist. An alist can > have multiple entries that have exactly the same key (even `eq'). An > Elisp hash table cannot - it realizes a mathematical function: one key > gives you only one value. > > (The fact that `assoc' and `assq' ignore entries past the first is > irrelevant here. An alist is a list; it can be used in many ways.) An alist is a list that associates keys with value. There may be several identical keys in the list, but that is not how an alist is meant to be used, which is reflected in how the common operators on alists work -- they only return the first match. So I don't think this is a difference that needs to be pointed out here. > 2. Wrt the difference between an alist and a hash table, the emphasis in > this node seems to be on the performance characteristics. I think that > functional/structural differences should be distinguished here from > performance differences, instead of just lumping them together in the > same bulleted list. The primary difference is in the performance characteristics, so I don't see anything that needs changing in that node. Closing. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no