Hi,<div><br></div><div>Usually there are homework problems and stuff for tweaking strings but I was just playing around for the fun of it. I wondered what is the &quot;best way&quot; to do a couple of simple tasks but without regex. Here are two of them. They are not optimized I just wrote them in a way that seemed the simplest. What is a better way or different way?</div>
<div><br></div><div><div>#lang racket</div><div><br></div><div>(require rackunit)</div><div><br></div><div>;; string -&gt; string</div><div>;; Removes vowels from the input</div><div>(define remove-vowels</div><div>  (lambda (word)</div>
<div>    (let ((test (lambda (c) (not (member c (list #\a #\e #\i #\o #\u)))))</div><div>          (ls (string-&gt;list word)))</div><div>      (list-&gt;string (filter test ls)))))</div><div><br></div><div>(check-equal? (remove-vowels &quot;&quot;) &quot;&quot;)</div>
<div>(check-equal? (remove-vowels &quot;f&quot;) &quot;f&quot;)</div><div>(check-equal? (remove-vowels &quot;a e i o u&quot;) &quot;    &quot;)</div><div><br></div><div>;; string -&gt; string</div><div>;; Replaces spaces in the input with dashes</div>
<div>(define replace-spaces</div><div> (lambda (word)</div><div>   (let ((test (lambda (c) (if (equal? c #\space) #\- c)))</div><div>         (ls (string-&gt;list word)))</div><div>     (list-&gt;string (map test ls)))))</div>
<div><br></div><div>(check-equal? (replace-spaces &quot;&quot;) &quot;&quot;)</div><div>(check-equal? (replace-spaces &quot; &quot;) &quot;-&quot;)</div><div>(check-equal? (replace-spaces &quot;a b c&quot;) &quot;a-b-c&quot;)</div>
</div><div><br></div>