From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: re-make-list Date: Tue, 11 Feb 2020 04:44:05 +0100 Message-ID: <874kvxyeii.fsf@ebih.ebihd> References: <87imkfhvr6.fsf@ebih.ebihd> <20200210065820.GA31564@tuxteam.de> <87d0amj3jn.fsf@ebih.ebihd> <20200210080250.GB31564@tuxteam.de> <87blq6rfp1.fsf@ebih.ebihd> <87sgjixbrk.fsf@ebih.ebihd> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="92245"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:JSpbUimuslCCswtDByfxkdtJSZM= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Feb 11 04:44:43 2020 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1j1MTa-000Nv7-Uk for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 11 Feb 2020 04:44:43 +0100 Original-Received: from localhost ([::1]:42944 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1MTa-0004Oo-13 for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 10 Feb 2020 22:44:42 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57271) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1MTA-0004OW-VG for help-gnu-emacs@gnu.org; Mon, 10 Feb 2020 22:44:19 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j1MT7-0006ZO-7R for help-gnu-emacs@gnu.org; Mon, 10 Feb 2020 22:44:16 -0500 Original-Received: from ciao.gmane.io ([159.69.161.202]:40992) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j1MT6-0006VE-WE for help-gnu-emacs@gnu.org; Mon, 10 Feb 2020 22:44:13 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1j1MT5-000NSF-89 for help-gnu-emacs@gnu.org; Tue, 11 Feb 2020 04:44:11 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 159.69.161.202 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:122399 Archived-At: Stefan Monnier wrote: >>> Okay... but what should I do if its still >>> clear then? >> >> Usually converting to CPS is a good first >> step to solve these kinds of problems. If CPS is about like with `reverse' and `nreverse', which I take it are the quadratic and linear versions of the same unelegant last thing of reversing all good enough government job already done, then relax, one can do it with the "direct" style as well - and even directly so, by just fliping the first `re-make-list', which is direct to begin with! Ema-CPS 2-0 ;; this file: https://dataswamp.org/~incal/emacs-init/re-make-list.el (defun re-make-list-forward (re &optional start stop) (interactive (if (use-region-p) (list (region-beginning) (region-end)) (list (point-min) (point-max)) )) (save-excursion (let ((matches ())) (goto-char start) (while (re-search-forward re stop t) (push (match-string-no-properties 0) matches) ) matches) )) (defalias 're-make-list #'re-make-list-forward) (defun re-make-list-backward (re &optional start stop) (interactive (if (use-region-p) (list (region-beginning) (region-end)) (list (point-min) (point-max)) )) (save-excursion (let ((matches ())) (goto-char stop) (while (re-search-backward re start t) (push (match-string-no-properties 0) matches) ) matches) )) ;; Below are 139 colors, so the list should be ;; 139 items long... ;; ;; (length (re-make-list-forward "#[0-9\\|A-F]\\{6\\}" (point) (point-max))) ; 139 ;; (length (re-make-list-backward "#[0-9\\|A-F]\\{6\\}" (point) (point-max))) ; 139 ;; ;; # /bin/zsh ;; # ;; # not really... ;; # ;; # https://www.rapidtables.com/web/color/RGB_Color.html ;; # maroon #800000 (128,0,0) ;; # dark red #8B0000 (139,0,0) ;; # brown #A52A2A (165,42,42) ;; # firebrick #B22222 (178,34,34) ;; # crimson #DC143C (220,20,60) ;; # red #FF0000 (255,0,0) ;; # tomato #FF6347 (255,99,71) ;; # coral #FF7F50 (255,127,80) ;; # indian red #CD5C5C (205,92,92) ;; # light coral #F08080 (240,128,128) ;; # dark salmon #E9967A (233,150,122) ;; # salmon #FA8072 (250,128,114) ;; # light salmon #FFA07A (255,160,122) ;; # orange red #FF4500 (255,69,0) ;; # dark orange #FF8C00 (255,140,0) ;; # orange #FFA500 (255,165,0) ;; # gold #FFD700 (255,215,0) ;; # dark golden rod #B8860B (184,134,11) ;; # golden rod #DAA520 (218,165,32) ;; # pale golden rod #EEE8AA (238,232,170) ;; # dark khaki #BDB76B (189,183,107) ;; # khaki #F0E68C (240,230,140) ;; # olive #808000 (128,128,0) ;; # yellow #FFFF00 (255,255,0) ;; # yellow green #9ACD32 (154,205,50) ;; # dark olive green #556B2F (85,107,47) ;; # olive drab #6B8E23 (107,142,35) ;; # lawn green #7CFC00 (124,252,0) ;; # chart reuse #7FFF00 (127,255,0) ;; # green yellow #ADFF2F (173,255,47) ;; # dark green #006400 (0,100,0) ;; # green #008000 (0,128,0) ;; # forest green #228B22 (34,139,34) ;; # lime #00FF00 (0,255,0) ;; # lime green #32CD32 (50,205,50) ;; # light green #90EE90 (144,238,144) ;; # pale green #98FB98 (152,251,152) ;; # dark sea green #8FBC8F (143,188,143) ;; # medium spring green #00FA9A (0,250,154) ;; # spring green #00FF7F (0,255,127) ;; # sea green #2E8B57 (46,139,87) ;; # medium aqua marine #66CDAA (102,205,170) ;; # medium sea green #3CB371 (60,179,113) ;; # light sea green #20B2AA (32,178,170) ;; # dark slate gray #2F4F4F (47,79,79) ;; # teal #008080 (0,128,128) ;; # dark cyan #008B8B (0,139,139) ;; # aqua #00FFFF (0,255,255) ;; # cyan #00FFFF (0,255,255) ;; # light cyan #E0FFFF (224,255,255) ;; # dark turquoise #00CED1 (0,206,209) ;; # turquoise #40E0D0 (64,224,208) ;; # medium turquoise #48D1CC (72,209,204) ;; # pale turquoise #AFEEEE (175,238,238) ;; # aqua marine #7FFFD4 (127,255,212) ;; # powder blue #B0E0E6 (176,224,230) ;; # cadet blue #5F9EA0 (95,158,160) ;; # steel blue #4682B4 (70,130,180) ;; # corn flower blue #6495ED (100,149,237) ;; # deep sky blue #00BFFF (0,191,255) ;; # dodger blue #1E90FF (30,144,255) ;; # light blue #ADD8E6 (173,216,230) ;; # sky blue #87CEEB (135,206,235) ;; # light sky blue #87CEFA (135,206,250) ;; # midnight blue #191970 (25,25,112) ;; # navy #000080 (0,0,128) ;; # dark blue #00008B (0,0,139) ;; # medium blue #0000CD (0,0,205) ;; # blue #0000FF (0,0,255) ;; # royal blue #4169E1 (65,105,225) ;; # blue violet #8A2BE2 (138,43,226) ;; # indigo #4B0082 (75,0,130) ;; # dark slate blue #483D8B (72,61,139) ;; # slate blue #6A5ACD (106,90,205) ;; # medium slate blue #7B68EE (123,104,238) ;; # medium purple #9370DB (147,112,219) ;; # dark magenta #8B008B (139,0,139) ;; # dark violet #9400D3 (148,0,211) ;; # dark orchid #9932CC (153,50,204) ;; # medium orchid #BA55D3 (186,85,211) ;; # purple #800080 (128,0,128) ;; # thistle #D8BFD8 (216,191,216) ;; # plum #DDA0DD (221,160,221) ;; # violet #EE82EE (238,130,238) ;; # magenta / fuchsia #FF00FF (255,0,255) ;; # orchid #DA70D6 (218,112,214) ;; # medium violet red #C71585 (199,21,133) ;; # pale violet red #DB7093 (219,112,147) ;; # deep pink #FF1493 (255,20,147) ;; # hot pink #FF69B4 (255,105,180) ;; # light pink #FFB6C1 (255,182,193) ;; # pink #FFC0CB (255,192,203) ;; # antique white #FAEBD7 (250,235,215) ;; # beige #F5F5DC (245,245,220) ;; # bisque #FFE4C4 (255,228,196) ;; # blanched almond #FFEBCD (255,235,205) ;; # wheat #F5DEB3 (245,222,179) ;; # corn silk #FFF8DC (255,248,220) ;; # lemon chiffon #FFFACD (255,250,205) ;; # light golden rod yellow #FAFAD2 (250,250,210) ;; # light yellow #FFFFE0 (255,255,224) ;; # saddle brown #8B4513 (139,69,19) ;; # sienna #A0522D (160,82,45) ;; # chocolate #D2691E (210,105,30) ;; # peru #CD853F (205,133,63) ;; # sandy brown #F4A460 (244,164,96) ;; # burly wood #DEB887 (222,184,135) ;; # tan #D2B48C (210,180,140) ;; # rosy brown #BC8F8F (188,143,143) ;; # moccasin #FFE4B5 (255,228,181) ;; # navajo white #FFDEAD (255,222,173) ;; # peach puff #FFDAB9 (255,218,185) ;; # misty rose #FFE4E1 (255,228,225) ;; # lavender blush #FFF0F5 (255,240,245) ;; # linen #FAF0E6 (250,240,230) ;; # old lace #FDF5E6 (253,245,230) ;; # papaya whip #FFEFD5 (255,239,213) ;; # sea shell #FFF5EE (255,245,238) ;; # mint cream #F5FFFA (245,255,250) ;; # slate gray #708090 (112,128,144) ;; # light slate gray #778899 (119,136,153) ;; # light steel blue #B0C4DE (176,196,222) ;; # lavender #E6E6FA (230,230,250) ;; # floral white #FFFAF0 (255,250,240) ;; # alice blue #F0F8FF (240,248,255) ;; # ghost white #F8F8FF (248,248,255) ;; # honeydew #F0FFF0 (240,255,240) ;; # ivory #FFFFF0 (255,255,240) ;; # azure #F0FFFF (240,255,255) ;; # snow #FFFAFA (255,250,250) ;; # black #000000 (0,0,0) ;; # dim gray / dim grey #696969 (105,105,105) ;; # gray / grey #808080 (128,128,128) ;; # dark gray / dark grey #A9A9A9 (169,169,169) ;; # silver #C0C0C0 (192,192,192) ;; # light gray / light grey #D3D3D3 (211,211,211) ;; # gainsboro #DCDCDC (220,220,220) ;; # white smoke #F5F5F5 (245,245,245) ;; # white #FFFFFF (255,255,255) -- underground experts united http://user.it.uu.se/~embe8573 https://dataswamp.org/~incal