From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: How the backquote and the comma really work? Date: Wed, 22 Jul 2015 00:08:25 +0200 Message-ID: <877fptnoyu.fsf@web.de> References: <87vbebg1fs.fsf@mbork.pl> <87r3ozy9pf.fsf@web.de> <87si9ffys0.fsf@mbork.pl> <87d20jbqbj.fsf@web.de> <87pp4jfx9y.fsf@mbork.pl> <87615sxn1a.fsf@mbork.pl> <87zj318j7z.fsf@web.de> <87mvz1b16h.fsf@mbork.pl> <87k2u5azfi.fsf@mbork.pl> <87615mbo3z.fsf@mbork.pl> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1437516546 2580 80.91.229.3 (21 Jul 2015 22:09:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 21 Jul 2015 22:09:06 +0000 (UTC) Cc: help-gnu-emacs@gnu.org To: Marcin Borkowski Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jul 22 00:08:55 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 1ZHfiY-0005cf-CI for geh-help-gnu-emacs@m.gmane.org; Wed, 22 Jul 2015 00:08:54 +0200 Original-Received: from localhost ([::1]:33185 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZHfiX-00063J-Fu for geh-help-gnu-emacs@m.gmane.org; Tue, 21 Jul 2015 18:08:53 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54965) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZHfiG-0005z1-BX for help-gnu-emacs@gnu.org; Tue, 21 Jul 2015 18:08:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZHfiD-0005PS-4Z for help-gnu-emacs@gnu.org; Tue, 21 Jul 2015 18:08:36 -0400 Original-Received: from mout.web.de ([212.227.17.12]:49990) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZHfiC-0005PI-S9 for help-gnu-emacs@gnu.org; Tue, 21 Jul 2015 18:08:33 -0400 Original-Received: from drachen.dragon ([90.186.64.195]) by smtp.web.de (mrweb101) with ESMTPSA (Nemesis) id 0LzsKN-1YvF2y1zX9-015332; Wed, 22 Jul 2015 00:08:31 +0200 In-Reply-To: <87615mbo3z.fsf@mbork.pl> (Marcin Borkowski's message of "Tue, 14 Jul 2015 20:17:20 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-Provags-ID: V03:K0:AuDLGOtpu/rS1vlT0CpZXMzrnV+fKEc7PIWZovuUYxAbQpq3QC0 4xNrL2gYSyDYMxDE84VYC9z0TrWMWQktf/v7mI1+tKvtbwG/nGOEwYXpRi2rzILlkAZb2Nn pG6aDz5dY/uZhi6ibc1ooEBCmKNhbLX/wsBXTiCp33zwRAFWVFaAAEQKcL+FUib3L3dunEJ v8FFCPo90gMLfEVzaELxQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:B/VWwlroShw=:hMSn7wMOhckEOMImhNcVWF yybwMI7OG2mkDxKH8UPUx1sbi3Gg7L+R4kwqtuFn8wzHf7K3cSz7UJHwRqjunwkVQxgpYKNM0 w185BCV0E1fZuNUp60PoNclLdkNC4/S7jQAux08b68ud/uccpz2MXSXBDAVUKJZTJ0Wmw12zb 5b6DOopRToLPDswLH/JGJ35yX+a4iYI8J4mUJWoxbUvv1PqCZyxFe+xc+wiUhKsnhZQo0ougu OFT5EgcBa9pCrcICm9GfJxJSsRVpH5cAUMdeKKGcMFA7PMJfIs72qGIWaAUf3AUMpg6+fBYVp BeIOmGhGOOIZWu90Wlb+tR3UDh3SW2tF3Z33DtMMF0uGR1hFWUHBuRNM00mOk+mRoyhGtsLMy 3WBuu3aVDRVVFwrr2zEoN7bt3oqCm2ICZRVqEFPNCQKCLmyw1MZF4e4nrZ91eTGowFE213sf1 Lnrr4TQ9qDUeUxq4K6wlJzQZaZY4xWjggLK1z5UJNPEUrlqVDAJ3c9UtNJDRXcyq80ZdqrCWb A/R624neVK1Neb513bZ4dPVFrEJiPYWHIz8rCqip/ZZ/3Rq82TxJcWMSzzOEuSL5FMCOUVEhh 2aWnlONgqRMAQOTUBKmGtBwdjM7twate507EpKK167jNSopKTENKzM1Fxhdgj9FMuldutgxKm v101P1GhROblxP9N2h5mZpbM5148pRWWsvlsXNaawmfb/Jcok1vPwUWih6l+6+Ej59Mc= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 212.227.17.12 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:105913 Archived-At: Marcin Borkowski writes: > Stupid me =E2=80=93 again;-). No wonder =E2=80=98mci/read-list-contents= =E2=80=99 appears twice, > once, once in =E2=80=98mci/read=E2=80=99 and once in =E2=80=98mci/read-li= st-contents=E2=80=99 =E2=80=93 it seems > there=E2=80=99s no other way (though I can=E2=80=99t prove it formally). I don't think every implementation needs to have it in two different defuns. > But now my problem is something different, and on a different level =E2= =80=93 > a =E2=80=9Cmetaproblem=E2=80=9D in a sense. I=E2=80=99m still working on= =E2=80=98mci/eval=E2=80=99; it now > supports =E2=80=98progn=E2=80=99 forms and =E2=80=98setq=E2=80=99, and I = have =E2=80=98cons=E2=80=99, =E2=80=98car=E2=80=99 and =E2=80=98cdr=E2=80= =99 as > symbols bound to their Elisp counterparts in the global environment of > my MCI, and when I have lambdas (and write =E2=80=98mci/apply=E2=80=99, w= hich should be > relatively easy now), I=E2=80=99ll have more or less complete (though tin= y) > Lisp. I guess that adding backquote should be really straightforward > then. > > So where=E2=80=99s the problem? Well, it=E2=80=99s quite a lot of fun to= put it all > together, and I=E2=80=99m learning a few things along the way, so it=E2= =80=99s difficult > to resist the temptation to add more stuff. Macros? =E2=80=98cond=E2=80= =99 forms? > =E2=80=98while=E2=80=99 forms? OTOH, my goal is *not* to recreate all El= isp (contrary > to Scheme, Elisp is far from minimalistic, for instance, it has *a lot* > of special forms which could, in principle, be macros - =E2=80=98if=E2=80= =99, for > example, or =E2=80=98let=E2=80=99, or =E2=80=98let*=E2=80=99). I definit= ely do not want to spend too > much time on this =E2=80=93 adding lots of special forms would soon cease= to be > fun, and once (and if!) I have macros, there=E2=80=99s really no use in a= dding > them; also, I want to move on to other things. Once you have macros, implementing the stuff you mentioned should not be hard if you don't care about efficiency too much. > So now my question is: does it make sense to play around with it more? > Would a more complete Elisp interpreter written in Elisp be useful for > anyone? For learning purposes, it would be useful. > If yes, I might consider publishing all my code sooner rather than > later. And: if it=E2=80=99s interesting and/or useful for anybody, is th= ere > anything besides lambdas, a proper =E2=80=98mci/apply=E2=80=99 function a= nd macros > that definitely *should* be added? (One thing that comes to mind > would be special (=3D dynamic) variables. I=E2=80=99m not sure whether I= would > like to add them =E2=80=93 it might be too much work. OTOH, I=E2=80=99d = learn to > implement dynamic binding then...) If you think you have learned what you wanted to, I would stop. Maybe you feel like continuing working on it at a later point of time. But hey, since you asked: Implementing nonlocal exits come to my mind as a goal. And continuations would be cool. Implementing these are probably harder lessons. Regards, Michael.