<div>This is what you posted  initially (insert-everywhere/in-all-words &#39;s (list (list &#39;m &#39;e) (list &#39;x))) . Try it out in your in function, I would like to know how it plays out.</div>
<div> </div>
<div><br><br>Emeka</div>
<div> </div>
<div> </div>
<div class="gmail_quote">On Mon, Apr 27, 2009 at 10:29 PM, S Brown <span dir="ltr">&lt;<a href="mailto:ontheheap@gmail.com">ontheheap@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">What I ended up doing was creating a helper function to insert-<br>everywhere, which takes 3 arguments, the front of the word, the<br>
symbol, and the back of the word. insert-everywhere doesn&#39;t do<br>anything except make the initial call to the insert-everywhere-helper<br>function, which does the actual work of inserting the letter into the<br>word. So, what I ended up with is basically this:<br>

<div class="im"><br>;; insert-everywhere:  symbol word  -&gt;  list-of-words<br></div>;; creates a list of words from symbol s, and word w, where<br>;; s has been inserted into each position of w<br>(define (insert-everywhere s w) ... )<br>
<br>and also<br><br>;; insert-everywhere-helper: word symbol word  -&gt;  list-of-words<br>;; creates a list of words where symbol is between word f and word b<br>(define (insert-everywhere-helper f s b) ... )<br><br>I don&#39;t know how correct this is, at least as far as what the book<br>
wants, but it does pass the following check-expect calls:<br><br> (check-expect (insert-everywhere &#39;x empty)<br>    (list (list &#39;x)))<br><br> (check-expect (insert-everywhere &#39;x (list &#39;a &#39;b))<br>    (list (list &#39;x &#39;a &#39;b)<br>
          (list &#39;a &#39;x &#39;b)<br>          (list &#39;a &#39;b &#39;x)))<br><br> (check-expect (insert-everywhere &#39;x (list &#39;a &#39;t &#39;o &#39;m))<br>    (list (list &#39;x &#39;a &#39;t &#39;o &#39;m)<br>
          (list &#39;a &#39;x &#39;t &#39;o &#39;m)<br>          (list &#39;a &#39;t &#39;x &#39;o &#39;m)<br>          (list &#39;a &#39;t &#39;o &#39;x &#39;m)<br>          (list &#39;a &#39;t &#39;o &#39;m &#39;x)))<br>
<br> (check-expect (arrangements (list &#39;h &#39;o &#39;t))<br>               (list (list &#39;h &#39;o &#39;t)<br>                     (list &#39;o &#39;h &#39;t)<br>                     (list &#39;o &#39;t &#39;h)<br>
                     (list &#39;h &#39;t &#39;o)<br>                     (list &#39;t &#39;h &#39;o)<br>                     (list &#39;t &#39;o &#39;h)))<br><br>Thank you to everyone who provided input!<br>
<div>
<div></div>
<div class="h5"><br>On Apr 26, 6:02 pm, Nadeem Abdul Hamid &lt;<a href="mailto:nad...@acm.org">nad...@acm.org</a>&gt; wrote:<br>&gt; Consider having the purpose of your insert-everywhere function:<br>&gt;<br>&gt; &gt; (insert-everywhere &#39;x (list &#39;h &#39;o &#39;t))<br>
&gt;<br>&gt; to be to produce this result by the time it&#39;s done:<br>&gt;<br>&gt; &gt;    =&gt;   (list (list &#39;x &#39;h &#39;o &#39;t)<br>&gt; &gt;               (list &#39;h &#39;x &#39;o &#39;t)<br>&gt; &gt;               (list &#39;h &#39;o &#39;x &#39;t)<br>
&gt; &gt;               (list &#39;h &#39;o &#39;t &#39;x))<br>&gt;<br>&gt; and consider what function you wish you could use in the body of  <br>&gt; insert-everywhere itself to achieve this (as opposed to thinking about  <br>
&gt; applying your helper function only after insert-everywhere has  <br>&gt; produced the result that you currently have it producing).<br>&gt;<br>&gt; On Apr 26, 2009, at 5:37 PM, S Brown wrote:<br>&gt;<br>&gt;<br>&gt;<br>
&gt; &gt; I&#39;ve been working on this for the last few hours, and my insert-<br>&gt; &gt; everywhere function is now working like so:<br>&gt;<br>&gt; &gt; (insert-everywhere &#39;x (list &#39;h &#39;o &#39;t))<br>&gt;<br>
&gt; &gt; =&gt;   (list (list &#39;x &#39;h &#39;o &#39;t)<br>&gt; &gt;           (list &#39;x &#39;o &#39;t)<br>&gt; &gt;           (list &#39;x &#39;t)<br>&gt; &gt;           (list &#39;x))<br>&gt;<br>&gt; &gt; So, I wish I had some function that would prefix each list with the<br>
&gt; &gt; &quot;remainder&quot; of the word, such that:<br>&gt;<br>&gt; &gt;    (list (prefix remainder (list &#39;x &#39;h &#39;o &#39;t))<br>&gt; &gt;          (prefix remainder (list &#39;x &#39;o &#39;t))<br>&gt; &gt;          (prefix remainder (list &#39;x &#39;t))<br>
&gt; &gt;          (prefix remainder (list &#39;x)))<br>&gt;<br>&gt; &gt;    =&gt;   (list (list &#39;x &#39;h &#39;o &#39;t)<br>&gt; &gt;               (list &#39;h &#39;x &#39;o &#39;t)<br>&gt; &gt;               (list &#39;h &#39;o &#39;x &#39;t)<br>
&gt; &gt;               (list &#39;h &#39;o &#39;t &#39;x))<br>&gt;<br>&gt; &gt; So, based on this I want a function, prefix, which basically takes two<br>&gt; &gt; words, appends them, and returns the new list. So, I guess in order to<br>
&gt; &gt; use this &quot;prefix&quot; function, I need to figure out how to define<br>&gt; &gt; &quot;remainder,&quot; but now I seem to be stuck again because remainder<br>&gt; &gt; depends on information that isn&#39;t being passed along (ie, for (prefix<br>
&gt; &gt; remainder (list &#39;x &#39;t)), remainder needs to be (list &#39;h &#39;o), but I<br>&gt; &gt; can&#39;t figure out how to do this!<br>&gt;<br>&gt; &gt; Am I at least on the right path with this? Any tips/hints??<br>
&gt;<br>&gt; &gt; On Apr 26, 1:25 pm, Matthias Felleisen &lt;<a href="mailto:matth...@ccs.neu.edu">matth...@ccs.neu.edu</a>&gt; wrote:<br>&gt; &gt;&gt; Yes, and don&#39;t forget, you may need *more* auxiliary functions than<br>
&gt; &gt;&gt; just insert-everywhere<br>&gt;<br>&gt; &gt;&gt; On Apr 26, 2009, at 1:19 PM, S Brown wrote:<br>&gt;<br>&gt; &gt;&gt;&gt; Thanks for the input so far. I don&#39;t know how I didn&#39;t see this<br>&gt; &gt;&gt;&gt; before! Instead of calling append on (list s) (first a-low), what I<br>
&gt; &gt;&gt;&gt; need is to call append on another function which takes as it&#39;s<br>&gt; &gt;&gt;&gt; arguments a symbol and a single word, which returns a list of words<br>&gt; &gt;&gt;&gt; where the symbol has been been inserted before and after each letter<br>
&gt; &gt;&gt;&gt; in the word. In other words, where insert-everywhere/in-all-words is<br>&gt; &gt;&gt;&gt; concerned with a list of words, my new function is only concerned  <br>&gt; &gt;&gt;&gt; with<br>&gt; &gt;&gt;&gt; a single word.<br>
&gt;<br>&gt; &gt;&gt;&gt; So, now it&#39;s a matter of going through the design process for my new<br>&gt; &gt;&gt;&gt; function, which I&#39;m going to call insert-everywhere.<br>&gt;<br>&gt; &gt;&gt;&gt; ;; insert-everywhere: symbol word  -&gt;  list-of-words<br>
&gt; &gt;&gt;&gt; ;; to create a list-of-words where symbol s is inserted before<br>&gt; &gt;&gt;&gt; ;; and after each letter in the word w<br>&gt; &gt;&gt;&gt; (define (insert-everywhere s w)<br>&gt; &gt;&gt;&gt;    (cond<br>
&gt; &gt;&gt;&gt;       ((empty? w) ... s ...)<br>&gt; &gt;&gt;&gt;       (else ... s (first w) ...<br>&gt; &gt;&gt;&gt;             ... (insert-everywhere s (rest w)) ...)))<br>&gt;<br>&gt; &gt;&gt;&gt; I think this makes sense. Now it&#39;s a matter of completing each cond<br>
&gt; &gt;&gt;&gt; line in my new function insert-everywhere.. and figuring out how to<br>&gt; &gt;&gt;&gt; actually insert a letter into each position of a word.<br>&gt; &gt;&gt;&gt; _________________________________________________<br>
&gt; &gt;&gt;&gt;   For list-related administrative tasks:<br>&gt; &gt;&gt;&gt;  <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>&gt;<br>
&gt; &gt;&gt; _________________________________________________<br>&gt; &gt;&gt;   For list-related administrative tasks:<br>&gt; &gt;&gt;  <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
&gt; &gt; _________________________________________________<br>&gt; &gt;  For list-related administrative tasks:<br>&gt; &gt;  <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
&gt;<br>&gt; _________________________________________________<br>&gt;   For list-related administrative tasks:<br>&gt;  <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
_________________________________________________<br> For list-related administrative tasks:<br> <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
</div></div></blockquote></div><br>