diff --git a/common-lisp/word-count/word-count.lisp b/common-lisp/word-count/word-count.lisp index 5200c8bf361d3516fcf8e8579cba97418e7683ed..f3260ac2b3e3d522198f904b33247fd8154557fb 100644 --- a/common-lisp/word-count/word-count.lisp +++ b/common-lisp/word-count/word-count.lisp @@ -5,12 +5,12 @@ (in-package #:word-count) (defun split-string (string &optional (delims '(#\space))) - (labels ((split-string-r (string delims list) - (let ((pos-delim (position-if (lambda (char) (position char delims)) string))) + (labels ((recurse (string list) + (let ((pos-delim (position-if (lambda (char) (member char delims)) string))) (if pos-delim - (split-string-r (subseq string (+ 1 pos-delim)) delims (push (subseq string 0 pos-delim) list)) + (recurse (subseq string (1+ pos-delim)) (push (subseq string 0 pos-delim) list)) (push string list))))) - (split-string-r string delims '()))) + (recurse string '()))) (defun count-words (sentence) (loop