; if you can think of other boring words, feel free to add them
(define boring-words '(a the an in of and or but for to with))

(define (acronym-hof sent)
  ; accumulate into a word
  (accumulate word
              ; get the first letter of every word
              (every first
                     ; keep only non-boring words
                     (keep (lambda (wd) (not (member? wd boring-words)))
                           sent))))

; Domain: sentence
; Range:  word
(define (acronym-recursion sent)
  (cond ((null? sent) "")  ; range is a word
        ((member? (first sent) boring-words) (acronym-recursion (bf sent)))
        (else (word (first (first sent)) (acronym-recursion (bf sent))))))