From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: use Elisp to improve your Elisp - some code issues Date: Sun, 02 Aug 2015 02:06:38 +0200 Message-ID: <87twsid04x.fsf@nl106-137-147.student.uu.se> References: <877fphvymu.fsf@kuiper.lan.informatimago.com> <87twsjv16p.fsf@kuiper.lan.informatimago.com> <87lhdvuhhy.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1438474121 3859 80.91.229.3 (2 Aug 2015 00:08:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 2 Aug 2015 00:08:41 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Aug 02 02:08:33 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 1ZLgpN-00034H-5a for geh-help-gnu-emacs@m.gmane.org; Sun, 02 Aug 2015 02:08:33 +0200 Original-Received: from localhost ([::1]:54957 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLgpM-0002S3-Am for geh-help-gnu-emacs@m.gmane.org; Sat, 01 Aug 2015 20:08:32 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39273) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLgpC-0002Rh-7h for help-gnu-emacs@gnu.org; Sat, 01 Aug 2015 20:08:23 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZLgp8-0008Gz-5n for help-gnu-emacs@gnu.org; Sat, 01 Aug 2015 20:08:22 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:54966) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLgp8-0008Gr-00 for help-gnu-emacs@gnu.org; Sat, 01 Aug 2015 20:08:18 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZLgp6-0002zU-26 for help-gnu-emacs@gnu.org; Sun, 02 Aug 2015 02:08:16 +0200 Original-Received: from nl106-137-228.student.uu.se ([130.243.137.228]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 02 Aug 2015 02:08:16 +0200 Original-Received: from embe8573 by nl106-137-228.student.uu.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 02 Aug 2015 02:08:16 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 51 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: nl106-137-228.student.uu.se Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:qnVSPhw0b95ewvBMU3sM+bLlWmY= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:106198 Archived-At: "Pascal J. Bourguignon" writes: >> It would be more illustrative if you provide >> a counterexample of the same construct which cannot >> be caught by that or another regexp. It will be >> interesting to see if that example is anything >> I would put in my code, ever. > > It's easy. Try to simplify (- x x) for any sexp x, > (assuming x doesn't side effect. Just something like > (+ 2 y) or (+ (* a x x) (* b x) c). ...? The example was finding (if a a b). Didn't you say regexps couldn't identify all such cases because of lack of expressiveness with respect to the more expressive Lisp? Finding (- x x) should be very easy! And ;; find (- x x) - this is line 64 (search-regexp-in-files "~/.emacs.d/emacs-init/**/*.el" "(- \\(.*\\) \\1)") indeed shows the result: /home/incal/.emacs.d/emacs-init/search-regexp-in-files.el (64) (By the way, is there a less bulky way to get the equivalence of [[:space:]\n]* (and ditto +) at all places where the punctuation and whitespaces now serve as delimiters?) If you mean post-evaluation obviously regexps don't evaluate anything and they don't know Lisp. But if you or anyone else do this is Lisp - why not in the byte-compiler? - and it is an improvement either with respect to finding all occurrences *or* doing this post-evaluation (I don't know which you mean) then I'd use that in an instant rather than my stuff for analyzing Elisp. I don't see how such things can be identified post-evaluation because that depends on evaluation, but perhaps if you only use calculation with fixed digits it works, tho how many people do how much of that I wonder. -- underground experts united http://user.it.uu.se/~embe8573