From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: plist-based package.el (was Re: cl-defstruct-based package.el, now with ert tests and no external tar!) Date: Thu, 06 Jun 2013 08:51:06 -0400 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <87fvwvwgg5.fsf@lifelogs.com> References: <51AE71DB.8060005@yandex.ru> <87zjv41uer.fsf@lifelogs.com> <878v2oxwhr.fsf@lifelogs.com> <87r4gfa8nw.fsf@uwakimon.sk.tsukuba.ac.jp> Reply-To: emacs-devel@gnu.org NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1370523085 14318 80.91.229.3 (6 Jun 2013 12:51:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 6 Jun 2013 12:51:25 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jun 06 14:51:24 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UkZf2-0001mS-Gk for ged-emacs-devel@m.gmane.org; Thu, 06 Jun 2013 14:51:24 +0200 Original-Received: from localhost ([::1]:46287 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UkZf2-00085k-2a for ged-emacs-devel@m.gmane.org; Thu, 06 Jun 2013 08:51:24 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55762) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UkZez-00085S-6Y for emacs-devel@gnu.org; Thu, 06 Jun 2013 08:51:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UkZex-0002QX-Si for emacs-devel@gnu.org; Thu, 06 Jun 2013 08:51:21 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:59084) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UkZex-0002QL-Lk for emacs-devel@gnu.org; Thu, 06 Jun 2013 08:51:19 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UkZev-0001hL-K7 for emacs-devel@gnu.org; Thu, 06 Jun 2013 14:51:17 +0200 Original-Received: from pool-72-93-26-80.bstnma.east.verizon.net ([72.93.26.80]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 06 Jun 2013 14:51:17 +0200 Original-Received: from tzz by pool-72-93-26-80.bstnma.east.verizon.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 06 Jun 2013 14:51:17 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 24 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: pool-72-93-26-80.bstnma.east.verizon.net X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:F43YHcWQMEHb94xA6P+2Bbv4daA= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:160163 Archived-At: On Thu, 06 Jun 2013 18:30:11 +0900 "Stephen J. Turnbull" wrote: SJT> Ted Zlatanov writes: >> plists as a sequence of odd=key and even=value don't actually associate >> the key with the value, unlike hashtables and alists. SJT> They do if you use plist-put and plist-get. If you use list SJT> primitives, you get what you deserve, which may not always be what you SJT> want.... The association is positional. All you have to do is insert an element in the middle of the list and the plist is broken. Also there's no iteration primitive, so you have to use something like #+begin_src lisp (setq keys (loop for i below (length spec) by 2 collect (nth i spec))) #+end_src By contrast, an alist is an actual list of association cells that works with `mapcar', and a hashtable is opaque so you don't know or care how the association is maintained, but you can't screw it up. Ted