I&#39;m still trying to understand exactly how this helps me:<br><br>(cond ((empty? a-word) (list (list a-letter)))<br>
             (else<br>
                  ; a-letter                           symbol                      &#39;x<br>
                  ; a-word                           los                              (list &#39;a &#39;b &#39;c &#39;d)<br>
                  ; (first a-word)                 symbol                      &#39;a<br>
                  ; (rest a-word)                 los                             (list &#39;b &#39;c &#39;d)<br>
                 ; (insert-everywhere a-letter (rest a-word))    lolos
(list (list &#39;x &#39;b &#39;c &#39;d) (list &#39;b &#39;x &#39;c &#39;d) (list &#39;b &#39;c &#39;x &#39;d) (list &#39;b
&#39;c &#39;d &#39;x))<br>
                 ; right answer                 lolos             (list
(list &#39;x &#39;a &#39;b &#39;c &#39;d) (list &#39;a &#39;x &#39;b &#39;c &#39;d) (list &#39;a &#39;b &#39;x &#39;c &#39;d) (list
&#39;a &#39;b &#39;c &#39;x &#39;d) (list &#39;a &#39;b &#39;c &#39; d &#39;x))<br>
              )))<br><br>I see how when (rest a-word) is (list &#39;b &#39;c d), that (insert-everywhere a-letter (rest a-word)) is (list (list &#39;x &#39;b &#39;c &#39;d) (list &#39;b &#39;x &#39;c &#39;d) etc...), because this is what I&#39;ve defined the function insert-everywhere to do. I think I understand what the next step is now, it&#39;s figuring out how to go from (list (list &#39;x &#39;b &#39;c &#39;d) etc...) to the right answer which is (list (list &#39;x &#39;a &#39;b &#39;c &#39;d) etc.<br>

<br>So, I have the following information/data available to me in order to do this:<br><br>                 ; a-letter                           symbol                      &#39;x<br>

                  ; a-word                           los                              (list &#39;a &#39;b &#39;c &#39;d)<br>

                  ; (first a-word)                 symbol                      &#39;a<br>

                  ; (rest a-word)                 los                             (list &#39;b &#39;c &#39;d)<br><br>Am I thinking about this correctly?<br><br>At this point, it looks like in order to turn this:<br><br>(list (list &#39;x &#39;b &#39;c &#39;d) <br>
      (list &#39;b &#39;x &#39;c &#39;d) <br>      (list &#39;b &#39;c &#39;x &#39;d) <br>      (list &#39;b
&#39;c &#39;d &#39;x))<br><br>into this:<br><br>(list
(list &#39;x &#39;a &#39;b &#39;c &#39;d) <br>      (list &#39;a &#39;x &#39;b &#39;c &#39;d) <br>      (list &#39;a &#39;b &#39;x &#39;c &#39;d) <br>      (list
&#39;a &#39;b &#39;c &#39;x &#39;d) <br>      (list &#39;a &#39;b &#39;c &#39; d &#39;x))<br><br>I have to <br>1. insert (first a-word) between &#39;x and &#39;b for the first list<br>2. insert (first a-word) in front of the rest of the lists<br>
<br>So, I potentially need some function that can prepend a symbol onto each word in a list of words.<br><br>; prepend-letter: Letter List-Of-Words  -&gt;  List-Of-Words<br>; creates a List-Of-Words where a-letter is inserted before<br>
; each word in a-list-of-words<br>(define (prepend-letter a-letter a-list-of-words )<br>  (cond <br>    ((empty? a-list-of-words) empty)<br>    (else (append (list (append (list a-letter) (first a-list-of-words)))<br>                  (prepend-letter a-letter (rest a-list-of-words))))))<br>
<br>is this prepend-letter function one of the helper functions I need? I&#39;m starting to think I might be on the right track here. Completing the insert-everywhere function still eludes me, but maybe the helper-functions need to be written first before insert-everywhere will work correctly?<br>
<br>