about summary refs log tree commit diff
path: root/emacs/.emacs.d/wpc/list.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/wpc/list.el')
-rw-r--r--emacs/.emacs.d/wpc/list.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/emacs/.emacs.d/wpc/list.el b/emacs/.emacs.d/wpc/list.el
index 5a63c8bd94e0..83c4c5ccdc42 100644
--- a/emacs/.emacs.d/wpc/list.el
+++ b/emacs/.emacs.d/wpc/list.el
@@ -199,6 +199,11 @@ Be leery of using this with things like alists.  Many data structures in Elisp
   "Return t if X is in XS using `equal'."
   (-contains? xs x))
 
+(defun list/xs-distinct-by? (f xs)
+  "Return t if all elements in XS are distinct after applying F to each."
+  (= (length xs)
+     (->> xs (-map f) set/from-list set/count)))
+
 ;; TODO: Support dedupe.
 ;; TODO: Should we call this unique? Or distinct?