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: How to delete all nil properties from a plist? Date: Sun, 02 Aug 2015 03:32:44 +0200 Message-ID: <87twsiv5j7.fsf@nl106-137-147.student.uu.se> References: <87oaiq3buh.fsf@mbork.pl> <87mvya3bij.fsf@mbork.pl> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1438479332 6118 80.91.229.3 (2 Aug 2015 01:35:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 2 Aug 2015 01:35:32 +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 03:35:23 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 1ZLiBP-0007Nk-0n for geh-help-gnu-emacs@m.gmane.org; Sun, 02 Aug 2015 03:35:23 +0200 Original-Received: from localhost ([::1]:55049 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLiBO-0005d9-5E for geh-help-gnu-emacs@m.gmane.org; Sat, 01 Aug 2015 21:35:22 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49335) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLiBC-0005d4-3S for help-gnu-emacs@gnu.org; Sat, 01 Aug 2015 21:35:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZLiB8-0007As-2f for help-gnu-emacs@gnu.org; Sat, 01 Aug 2015 21:35:10 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:57295) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZLiB7-0007A7-Sn for help-gnu-emacs@gnu.org; Sat, 01 Aug 2015 21:35:06 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZLiB6-0007Hl-4w for help-gnu-emacs@gnu.org; Sun, 02 Aug 2015 03:35:04 +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 03:35:04 +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 03:35:04 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 27 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:psHzsPxnOMV0x5jSj6wKgm/A+/M= 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:106201 Archived-At: Marcin Borkowski writes: >> Hi all, so I'm still using plists, though I'm less >> and less sure that they are actually better than >> alists for my use-case. Now I need to delete all >> properties whose value is nil. I'm using this >> function: Try this: (require 'cl) (defun plist-drop-nil-props (l) (let((new) (prop nil) ) (cl-loop for x in l do (if (or (setq prop (not prop)) x) (setq new (append new (list x))) (setq new (butlast new)))) new)) (plist-drop-nil-props '(nil nil a 1 b 2 c nil d nil e 5 g nil nil nil) ) ; (a 1 b 2 e 5) -- underground experts united http://user.it.uu.se/~embe8573