title: how to convert a list of chars and ints to a string
body: <p>I have a list of chars and integers, and I'm trying to convert them to a string.</p>
  
  <pre><code>&gt; (define l (cons #\a (cons #\b (cons 3 null))))
  </code></pre>
  
  <p>I want to convert this list to the string <code>"ab3"</code>.</p>
  
  <p>Using <code>list-&gt;string</code> doesn't work:</p>
  
  <pre><code>&gt; (list-&gt;string l)
  list-&gt;string: contract violation
    expected: (listof char?)
    given: (list #\a #\b 3)
  </code></pre>
  
  <p>When I try that combined with <code>integer-&gt;char</code>, it gives this numeric value:</p>
  
  <pre><code>&gt; (define l (cons #\a (cons #\b (cons (integer-&gt;char 3) null))))
  &gt; (list-&gt;string l)
  "ab\u0003"
  </code></pre>
  
  <p>Using <code>number-&gt;string</code> doesn't work either:</p>
  
  <pre><code>&gt; (define l (cons #\a (cons #\b (cons (number-&gt;string 3) null))))
  &gt; (list-&gt;string l)
  list-&gt;string: contract violation
    expected: (listof char?)
    given: '(#\a #\b "3")
    context...:
     C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7
  </code></pre>
  
  <p><code>list-&gt;string</code> requires a list of chars, it does not accept strings.</p>
  
  <p>Another try, first converting the string to a list:</p>
  
  <pre><code>&gt; (define l (cons #\a (cons #\b (cons (string-&gt;list (number-&gt;string 123)) null))))
  &gt; (list-&gt;string l)
  list-&gt;string: contract violation
    expected: (listof char?)
    given: '(#\a #\b (#\3))
    context...:
     C:\Program Files\Racket\collects\racket\private\misc.rkt:87:7
  </code></pre>
  
  <p>It does not accept a sub list either. How can I convert this to the string <code>"ab3"</code>?</p>