; 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))))))