Scheme: Cons a function to list in macro
<p>I would like to make a macro:</p>

<pre><code>(define-syntax MyMacro
  (syntax-rules ()
    ((MyMacro a b)  (cons a b))
  )
) 
(display (MyMacro + (list 1 2 3 4)))
</code></pre>

<p>and I get,</p>

<pre><code>#&lt;subr +&gt; 1 2 3 4)
</code></pre>

<p>But, what I actually want is sum of 1 2 3 4.</p>

<p>How can I solve the problem? Thanks.</p>

<p><strong>Update:</strong></p>

<p>Actually my problem is about meep:</p>

<p>I would like to use a function "at-every" (at-every arg1 functions...).</p>

<p>And I define a function which make use of "in-point" function</p>

<pre><code>(define (makeBzSeries n)
(in-point
 (vector3
    (- (- (/ sx 2) (/ conThick 2)) (* obserR (cos (nToTheta n))))
    (* obserR (sin (nToTheta n)))
    0
 )
 (to-appended
   (string-append "bz" (number-&gt;string n) )
   output-bfield-z))
)
</code></pre>

<p>What I want is</p>

<pre><code>(at-every 2 (makeBzSeries 0) (makeBzSeries 1) ... (makeBzSeries 600))
</code></pre>

<p>I have try to use apply and map, but (makeBzSeries n) is a procedure instead of value. Is there any method to solve it? Thank you.</p>