aboutsummaryrefslogtreecommitdiff
path: root/2024
diff options
context:
space:
mode:
Diffstat (limited to '2024')
-rw-r--r--2024/util.lisp17
1 files changed, 13 insertions, 4 deletions
diff --git a/2024/util.lisp b/2024/util.lisp
index f9b1d86..11ec230 100644
--- a/2024/util.lisp
+++ b/2024/util.lisp
@@ -5,7 +5,16 @@
appending `((_ ,f)))
_)))
-(defun zip (a b)
- (loop for i in a
- for j in b
- collect (cons i j)))
+(defun search-all (substr str &optional acc len)
+ (let ((x (search substr str))
+ (len (or len 0)))
+ (if (null x)
+ (reverse acc)
+ (search-all substr (subseq str (1+ x))
+ (cons (+ x len) acc)
+ (+ len x 1)))))
+
+ (defun zip (a b)
+ (loop for i in a
+ for j in b
+ collect (cons i j)))