split-by->split-by-first, split-completely->split-by-completely

This commit is contained in:
2023-10-17 20:07:19 +01:00
parent f11415c365
commit ceaaad427c
2 changed files with 5 additions and 5 deletions

View File

@@ -6,19 +6,19 @@
(string clist) (string clist)
(coerce clist 'string))) (coerce clist 'string)))
(defun split-by (lst delim) (defun split-by-first (lst delim)
"Splits LST by the first instance of DELIM" "Splits LST by the first instance of DELIM"
(let ((pos (position delim lst))) (let ((pos (position delim lst)))
(if pos (if pos
(cons (subseq lst 0 pos) (list (subseq lst (+ pos 1)))) (cons (subseq lst 0 pos) (list (subseq lst (+ pos 1))))
(error (format nil "No instance of ~a was found in ~a" delim lst))))) (error (format nil "No instance of ~a was found in ~a" delim lst)))))
(defun split-completely (lst delim) (defun split-by-completely (lst delim)
(if (or (null lst) (not (cdr lst))) (if (or (null lst) (not (cdr lst)))
(cons (list (car lst)) nil) (cons (list (car lst)) nil)
(if (member delim lst) (if (member delim lst)
(destructuring-bind (first rest) (split-by lst delim) (destructuring-bind (first rest) (split-by-first lst delim)
(cons first (split-completely rest delim))) (cons first (split-by-completely rest delim)))
(list lst)))) (list lst))))
(defun get-lines (input-string) (defun get-lines (input-string)

View File

@@ -6,7 +6,7 @@
"Split each LINE in LINES by space" "Split each LINE in LINES by space"
(mapcar (lambda (line) (mapcar (lambda (line)
(mapcar #'clist-to-string (mapcar #'clist-to-string
(split-completely (string-to-clist line) #\Space))) (split-by-completely (string-to-clist line) #\Space)))
lines)) lines))
(defun is-token-cmd? (token) (defun is-token-cmd? (token)