From 8beafd5dc2b663c26502816e3f72adb3de4655ff Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 15 Apr 2022 17:41:23 -0700 Subject: cons: document and test uniq, new uniqual function. --- cppawk-include/cons-priv.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'cppawk-include/cons-priv.h') diff --git a/cppawk-include/cons-priv.h b/cppawk-include/cons-priv.h index 97d410d..4482fa6 100644 --- a/cppawk-include/cons-priv.h +++ b/cppawk-include/cons-priv.h @@ -843,6 +843,23 @@ function __uniq(__lst, return __list_end(__out) } +function __uniqual(__lst, + __out, __item, __itemeq, __seen) +{ + __out = __list_begin(); + + __dolist(__item, __lst) { + __itemq = __equalize(__item) + if (__itemq in __seen) + continue + __seen[__itemq] + __out = __list_add(__out, __item) + } + + return __list_end(__out) +} + + #if __have_indirect_functions function __mapcar(__fun, __lst, -- cgit v1.2.3