diff --git a/hyphenate/main.rkt b/hyphenate/main.rkt index 2272ee28..3404ea03 100644 --- a/hyphenate/main.rkt +++ b/hyphenate/main.rkt @@ -105,12 +105,12 @@ ;; helpful extension of splitf-at -(define (splitf-at* xs split-test) +(define (filter-split xs split-test) (define (trimf items test-proc) (dropf-right (dropf items test-proc) test-proc)) - (define (&splitf-at* xs [acc '()]) + (define (&filter-split xs [acc '()]) (if (empty? xs) ;; reverse because accumulation is happening backward ;; (because I'm using cons to push latest match onto front of list) @@ -121,10 +121,10 @@ ;; = nonmatching item + other elements (which will start with matching) (splitf-at (dropf xs split-test) (compose1 not split-test))]) ;; recurse, and store new item in accumulator - (&splitf-at* rest (cons item acc))))) + (&filter-split rest (cons item acc))))) ;; trim off elements matching split-test - (&splitf-at* (trimf xs split-test))) + (&filter-split (trimf xs split-test))) ;; Find hyphenation points in a word. This is not quite synonymous with syllables. @@ -148,7 +148,7 @@ (if (even? point) char ; even point denotes character (cons char 'syllable))))) ; odd point denotes char + syllable - (map list->string (splitf-at* word-dissected symbol?))) + (map list->string (filter-split word-dissected symbol?))) (if (and min-length (< (string-length word) min-length)) (list word)