Also, you could do it with only one map:<br><br>(map #(+ 5 (first %)) m)<br><br>This just maps a function down m that adds 5 to the first thing in the inner vector.<br><br>-Tom<br><br><div class="gmail_quote">On Thu, Nov 17, 2011 at 1:05 PM, Lee Spector <span dir="ltr">&lt;<a href="mailto:lspector@hampshire.edu">lspector@hampshire.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
Jesse,<br>
<br>
You&#39;ve got several near misses there, and there are several ways to do what you want. My first impulse is:<br>
<br>
(map #(+ % 5)<br>
     (map first m))<br>
<br>
=&gt; (90 97 71 85 55 90 71 42 108 39 118)<br>
<br>
Reading from the inside out, it maps first down m to produce a list of all the pitches (the first elements of the notes in your melody). Then it maps a function down that list of pitches. That function is specified anonymously, using the #() syntax, and it is the function that returns the result of calling + on its argument (%) and 5.<br>


<br>
In place of #(+ % 5) you could write, if you like, (fn [x] (+ x 5)).<br>
<br>
Of course, you could use a variable there in place of the 5.<br>
<br>
If you don&#39;t like the nesting you could do something like:<br>
<br>
(let [pitches (map first m)]<br>
  (map #(+ % 5) pitches))<br>
<br>
And there are many other options. Here&#39;s a particularly weird one just for the heck of it:<br>
<br>
(-&gt;&gt; (map first m)<br>
     (map #(+ % 5)))<br>
<br>
 -Lee<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Nov 17, 2011, at 12:05 PM, Jesse French wrote:<br>
<br>
&gt; Hi all,<br>
&gt;<br>
&gt; I&#39;m trying to figure out how to map some simple functions along a vector, and having trouble due to my lack of understanding of how map works.<br>
&gt;<br>
&gt; (def m<br>
&gt; [[85 1]<br>
&gt; [92 5/16]<br>
&gt; [66 15/16]<br>
&gt; [80 1/8]<br>
&gt; [50 1/8]<br>
&gt; [85 1/4]<br>
&gt; [66 13/16]<br>
&gt; [37 1/16]<br>
&gt; [103 1/8]<br>
&gt; [34 1/8]<br>
&gt; [113 7/16]]<br>
&gt;<br>
&gt; My goal is to map a &#39;+ x&#39; down the first value of this vector.<br>
&gt;<br>
&gt; Even<br>
&gt; (map first (map inc m))<br>
&gt; doesn&#39;t work, when I would like to be doing something like<br>
&gt; (map first (map (+  m x))<br>
&gt; or<br>
&gt; (map (+  (map first m) x))<br>
&gt;<br>
&gt;<br>
&gt; (def p [100 15 29 7 63 59 44 72])<br>
&gt; (map inc p)<br>
&gt; This works, so I&#39;m assuming my problem is with the syntax of how I&#39;m nesting them.<br>
&gt;<br>
&gt;<br>
&gt; Any thoughts?<br>
&gt;<br>
&gt; Jesse<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Cs254f11 mailing list<br>
&gt; <a href="mailto:Cs254f11@lists.hampshire.edu">Cs254f11@lists.hampshire.edu</a><br>
&gt; <a href="https://lists.hampshire.edu/mailman/listinfo/cs254f11" target="_blank">https://lists.hampshire.edu/mailman/listinfo/cs254f11</a><br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Lee Spector, Professor of Computer Science<br>
Cognitive Science, Hampshire College<br>
893 West Street, Amherst, MA 01002-3359<br>
<a href="mailto:lspector@hampshire.edu">lspector@hampshire.edu</a>, <a href="http://hampshire.edu/lspector/" target="_blank">http://hampshire.edu/lspector/</a><br>
Phone: <a href="tel:413-559-5352" value="+14135595352">413-559-5352</a>, Fax: <a href="tel:413-559-5438" value="+14135595438">413-559-5438</a><br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
Cs254f11 mailing list<br>
<a href="mailto:Cs254f11@lists.hampshire.edu">Cs254f11@lists.hampshire.edu</a><br>
<a href="https://lists.hampshire.edu/mailman/listinfo/cs254f11" target="_blank">https://lists.hampshire.edu/mailman/listinfo/cs254f11</a><br>
</div></div></blockquote></div><br>