From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Pascal J. Bourguignon" Newsgroups: gmane.emacs.help Subject: Re: plists, alists, and hashtables Date: Wed, 05 Aug 2015 08:12:22 +0200 Organization: Informatimago Message-ID: <87614uqn5l.fsf@kuiper.lan.informatimago.com> References: <876150vwaa.fsf@mbork.pl> <873803x5q4.fsf@kuiper.lan.informatimago.com> <87a8u7we9s.fsf_-_@lifelogs.com> <02f81836-554f-4bb4-873b-85c24e080e3d@googlegroups.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1438755321 27477 80.91.229.3 (5 Aug 2015 06:15:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 5 Aug 2015 06:15:21 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Aug 05 08:15:21 2015 Return-path: Envelope-to: geh-help-gnu-emacs@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 1ZMryy-000423-Ib for geh-help-gnu-emacs@m.gmane.org; Wed, 05 Aug 2015 08:15:20 +0200 Original-Received: from localhost ([::1]:39239 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZMryx-0002ZC-Pn for geh-help-gnu-emacs@m.gmane.org; Wed, 05 Aug 2015 02:15:19 -0400 Original-Path: usenet.stanford.edu!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 56 Original-X-Trace: individual.net nyS9UnBT0iDUHhGaVf/f3gtIz4AjUs/LE++sGh/AI84OzODack Cancel-Lock: sha1:OTk3ZjU0OTY0NGRkNTQ1Yzg5ODFlNjY2ZmY1NWMyZWYyZWRhMTRiOA== sha1:t6wz3GTCKGSOVpfpaxmi4SvWw34= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Original-Xref: usenet.stanford.edu gnu.emacs.help:213959 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:106244 Archived-At: Rusi writes: > However after perl and python (and awk) and... almost any language invented > in the last 20 years, its rather backward. > The efficiency is one thing > The clumsy syntax is the bigger one (for me) The clumsy syntax is on the part of perl and python and awk and so on. What you are losing from sight is the fact that: - a-lists are lists - p-lists are lists - lists are sequences - lists are cons cells or nil therefore any operator working on cons cells, on sequences, on lists, can also work on p-lists and on a-lists. Therefore you don't need any specific syntax to work with a-lists, because they are just normal lisp symbolic expressions, and you can use the whole of lisp to process them however you want. You are not restricted to a sterotyped straighjacket syntax to process exclusively dictionaries, maps or whatever they have in those lesser languages. Ignoring unicode, because no human can identify every glyphs of the billions you could compose in unicode and reproduce them without hesitation, and removing the characters already used for some lisp syntax '"#():`,@;.\?[] and those that are normal constituents and used in existing symbol names &+-*/%<=>, that leaves only 8 characters for new syntaxes !$^_{|}~ Unfortunately there are many more than 8 datastructures for which you could want a specific syntax. Therefore your requirement is impossible. There's no reason to allocate, eg. {} to some kind of maps over some other that I could prefer for my programs. On the other hand, if emacs lisp had readtables and reader macros like Common Lisp (or improved, like named readtables), we could introduce local syntaxes for specific packages. You could even make use of some specific unicode characters that you can type non-clumsily on your keyboard (but only YOU could do that, since other people would have other keyboard layout and it would be anything from very clumsy (C-x 8 RET what's this fucking character name again? RET) to impossible to type. So thanks for that non-clumsy syntax of yours. Give me sexps anytime! -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk