From 0d0c09864f5e401014b3e9e210fd6b001bd3b37c Mon Sep 17 00:00:00 2001 From: "David J. Rosenbaum" Date: Mon, 6 Jan 2020 20:25:49 -0800 Subject: [PATCH 1/3] Make remove-empty-subseqs default to t in split* functions This makes the code and the tutorial consistent. Moreover, using a value of nil for remove-empty-subseqs as rarely useful (as noted in the tutorial). --- core/sequence.lisp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/sequence.lisp b/core/sequence.lisp index 6f7ecd4..59c9bfe 100644 --- a/core/sequence.lisp +++ b/core/sequence.lisp @@ -8,7 +8,7 @@ (defun split-sequence (delimiter seq - &key (count nil) (remove-empty-subseqs nil) + &key (count nil) (remove-empty-subseqs t) (from-end nil) (start 0) (end nil) (key nil key-supplied) (test nil test-supplied) @@ -69,7 +69,7 @@ :finally (return (values subseqs right))))))) (defun split-sequence-if (predicate seq - &key (count nil) (remove-empty-subseqs nil) + &key (count nil) (remove-empty-subseqs t) (from-end nil) (start 0) (end nil) (key nil key-supplied)) "Return a list of subsequences in SEQ delimited by items, satisfying PREDICATE. @@ -122,7 +122,7 @@ :finally (return (values subseqs right))))))) (defun split-sequence-if-not (predicate seq - &key (count nil) (remove-empty-subseqs nil) + &key (count nil) (remove-empty-subseqs t) (from-end nil) (start 0) (end nil) (key nil key-supplied)) "Return a list of subsequences in SEQ delimited by items, satisfying From b955cfa2744a7f1571caa2b2504323f3665f91f4 Mon Sep 17 00:00:00 2001 From: "David J. Rosenbaum" Date: Sat, 11 Jan 2020 23:50:01 -0800 Subject: [PATCH 2/3] Update split-* tests --- test/sequence-test.lisp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/test/sequence-test.lisp b/test/sequence-test.lisp index 68607b1..b735caa 100644 --- a/test/sequence-test.lisp +++ b/test/sequence-test.lisp @@ -14,9 +14,9 @@ (should be equal '("foo" "bar") (split-sequence #\Space "foo bar")) (should be equal '("foo" "bar") - (split-sequence #\Space "foo bar" :remove-empty-subseqs t)) + (split-sequence #\Space "foo bar")) (should be equal '("foo" "" "bar" "baz") - (split-sequence #\Space "foo bar baz")) + (split-sequence #\Space "foo bar baz" :remove-empty-subseqs nil)) (should be equal '("foo" "bar" "baz") (split-sequence " " "foo bar baz" :test 'string=)) (should be equal '("foo" "bar" "baz") @@ -44,9 +44,9 @@ (should be equal '("foo" "bar") (split-sequence-if space-char-p "foo bar")) (should be equal '("foo" "bar") - (split-sequence-if space-char-p "foo bar" :remove-empty-subseqs t)) + (split-sequence-if space-char-p "foo bar")) (should be equal '("foo" "" "bar" "baz") - (split-sequence-if space-char-p "foo bar baz")) + (split-sequence-if space-char-p "foo bar baz" :remove-empty-subseqs nil)) (should be equal '("foo") (split-sequence-if space-char-p "foo bar baz" :count 1)) (should be equal '("baz") @@ -67,10 +67,9 @@ (should be equal '("foo" "bar") (split-sequence-if-not 'alpha-char-p "foo bar")) (should be equal '("foo" "bar") - (split-sequence-if-not 'alpha-char-p "foo bar" - :remove-empty-subseqs t)) + (split-sequence-if-not 'alpha-char-p "foo bar")) (should be equal '("foo" "" "bar" "baz") - (split-sequence-if-not 'alpha-char-p "foo bar baz")) + (split-sequence-if-not 'alpha-char-p "foo bar baz" :remove-empty-subseqs nil)) (should be equal '("foo") (split-sequence-if-not 'alpha-char-p "foo bar baz" :count 1)) (should be equal '("baz") From 56e369022def5804cafa78b5a8bff5e6d856823d Mon Sep 17 00:00:00 2001 From: "David J. Rosenbaum" Date: Sat, 11 Jan 2020 23:54:33 -0800 Subject: [PATCH 3/3] Remove unnecessary :remove-empty-subseqs t argument --- core/string.lisp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/string.lisp b/core/string.lisp index 4cba9a5..41b74c5 100644 --- a/core/string.lisp +++ b/core/string.lisp @@ -43,8 +43,7 @@ (defun split-string (string) "Split STRING by WHITE-CHAR-P." - (rutils.sequence:split-sequence-if #'white-char-p string - :remove-empty-subseqs t)) + (rutils.sequence:split-sequence-if #'white-char-p string)) (defun substr (string start &optional end) "Efficient substring of STRING from START to END (optional),