From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: Question on pcase Date: Mon, 26 Oct 2015 17:20:40 +0100 Message-ID: <87fv0xd2jr.fsf@web.de> References: <871tcngdv2.fsf@gmail.com> <87k2qe1u09.fsf@web.de> <83r3kmrtat.fsf@gnu.org> <87r3kl22zk.fsf@web.de> <837fmdzpf2.fsf@gnu.org> <87oafp659p.fsf@web.de> <831tclzly9.fsf@gnu.org> <87fv115t20.fsf@web.de> <87io5tzkt8.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1445876484 12948 80.91.229.3 (26 Oct 2015 16:21:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 26 Oct 2015 16:21:24 +0000 (UTC) Cc: Eli Zaretskii , Emacs Development To: Oleh Krehel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 26 17:21:15 2015 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 1ZqkWE-0003GC-AM for ged-emacs-devel@m.gmane.org; Mon, 26 Oct 2015 17:21:10 +0100 Original-Received: from localhost ([::1]:53906 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqkWD-0002Ty-ML for ged-emacs-devel@m.gmane.org; Mon, 26 Oct 2015 12:21:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqkVv-0002Ti-5J for emacs-devel@gnu.org; Mon, 26 Oct 2015 12:20:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZqkVu-0007a7-CL for emacs-devel@gnu.org; Mon, 26 Oct 2015 12:20:51 -0400 Original-Received: from mout.web.de ([212.227.17.12]:62868) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqkVq-0007ZX-Dl; Mon, 26 Oct 2015 12:20:46 -0400 Original-Received: from drachen.dragon ([90.186.3.146]) by smtp.web.de (mrweb103) with ESMTPSA (Nemesis) id 0Ma2Pz-1a4iSR0AH9-00LpVM; Mon, 26 Oct 2015 17:20:44 +0100 In-Reply-To: <87io5tzkt8.fsf@gmail.com> (Oleh Krehel's message of "Mon, 26 Oct 2015 16:55:15 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-Provags-ID: V03:K0:CCWK8qcKNcsSyCjT/kMWvMmuvnvaljKdK5Tdy+/tpgsT+niyZDB YNY8RhZs9PD+t3nL9Zb0ws61fc4C8AaTNOtSUQmC4Ox8lFFubkQHoP+ruUcopYbuZ0mDH+Q kHs6ChReCZQlHP/+LGaoCKMWZRFsRjf/MQYoYdVKSf2lxg67GE8YPVEv41Csp1Yq8aPhzXr 4jH6AgzmOWe5xoGXL5JcA== X-UI-Out-Filterresults: notjunk:1;V01:K0:+yrxYhAgwsw=:enMvKKj2lJV7OwxVxpp23G glVERMs4e8If/xTYHck9lzk2Kr7RiTRc91QpKalmUFVpi6zeXlxoMtr8SDD5IOnlSpODomMxr Quoe8WhCox9OnYlg/Cj/dhOJbSW+WgkMa5Bq9eSn0rx/Y8RSesn5+gQsVWfWwbMnL47/vDe+A 78UGlOj6W79aUspAXUt21toXHVaHUUzJqyqljoM2vwd73R54jIWR7MGFIT1+lMOWZRuaSkRVp z+K9BRW6yBsnobFy2yq+MT0m13wxrVclUc2t/DRfznltYUfKwC50dCClhZ359mp5zWF9d+fVl tcX56WGeKILoBjCvUs8qWSTBxHpWWBtvdePaj+23jUM8Wf6/fpQ9BhzvKNCF1tXvnBwe5IKPA hOdIdH61odVWxmE8vy+jvFbNlu/yG9kqOs1YcIEjvPeJJbaWYnmXAKdwLfH9REK5lYzBNT/J2 9rqs30MD1IVQfhx/W0lYXtYBJB2XIsAbcwaZcnOP/nNBX2kBpCscAy9rqhXfB200AkNvytQoC UqYuBKIBRkH7HmUKckyQOvENtdxHv0JgVszKJgGiPoIfCNVkwmY6RMrBmjKpr9tKHnsp8bdeu XqFF9AgvVaOJ3iML212wxqz4fErXpu/+TpniXd21xU9V3wkJ2Gn+yPpTXMV3XQTRZwKxDzqYq lFCEzYjzMdrWUDEhKHaEAYx6/399L9qCPqcJNp0Ufcmp1lBzpS9XiVWewbuywQM1+LHkHxeby WDVSaXJcU7VUkWVU5fm35nJpvttWASFtnGFZwTiYyokTrE4AxaaxIi08fwBZoEGMuXtji3o3 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.12 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:192663 Archived-At: Oleh Krehel writes: > The reason I dislike `pcase' is not because I don't know how to use it > (the basic rules are actually pretty simple), it's because I think it > leads to code that's hard to understand, maintain and transform. I > dislike the trivial `if-let' and `when-let' for the same reasons. I like them because I think they make code easier to understand and maintain. > I generally dislike any custom macro that includes `if' or binds > variables. This is because I can't reason about the code that uses these > macros unless I know exactly what they do in terms of binding variables > and selecting branches. These macros don't follow the substitution model > for procedure application (SMPA) [1], which is a valuable debugging > technique for me. I wonder how you debug. With the built in debugger, with edebug, something else? Knowing that would help understanding you problem. > Maybe someone could explain the above, and also suggest the best way the > create variable bindings from a pcase branch. `macroexpand' is your only choice if you want to have semantically equivalent code you can actually run. If arbitrary `pcase' forms could be expanded to simpler code, well, we should rewrite `pcase' to expand to this simpler code. Michael.