Patterns: recognition of patterns is an enormously useful skill to develop

```(define (mystery1 sent)     ; What does this function do?
(cond ((empty? sent) sent)
(else (se (* 2 (first sent))
(mystery1 (bf sent))))))

(define (mystery2 sent)     ; What does this function do?
(cond ((empty? sent) sent)
((odd? (first sent))
(se (first sent) (mystery2 (bf sent))))
(else (mystery2 (bf sent)))))

(define (mystery3 sent)     ; What does this function do?
(cond ((empty? sent) 0)   ; Why is this tested first?
((= (count sent) 1) (first sent))  ; Why is this tested at all?
(else (mystery3 (se (bl (bl sent))
(+ (last sent)
(last (bl sent))))))))  ; What is happening?
```

PROBLEMS (All to be done using recursion, not existing HOFs)

1. Write a function delete-first that takes a sentence of words and removes the first letter of each word. (You may assume no empty words are in the sentence.)

```> (delete-first '(the gate))
(he ate)
```

2. Write a function int-sqrts that takes a sentence of numbers and returns a sentence containing only those numbers that have integer square roots. You may find the integer? predicate useful.

```> (int-sqrts '(9 2 3 4 6 5 7 8 1))
(9 4 1)
```

3. Write a function acc-word that does the same thing as accumulate word.

```> (acc-word '(now here man))
nowhereman
```