<div>If I use raise-argument-error in my functions, like this:</div><div><br></div><div>(define (integer->roman n)</div><div> (cond ((not (integer? n))</div><div> (raise-argument-error 'integer->roman "integer?" n))</div>
<div> ((positive? n)</div><div> (apply string-append (positive-integer->roman n)))</div><div> ((negative? n)</div><div> (apply string-append "NEGATIVVS " (positive-integer->roman (- n))))</div>
<div> (else</div><div> "NVLLA")))</div><div><br></div><div>I get errors like this:</div><div><br></div><div><div>Welcome to DrRacket, version 5.3.2.2--2013-01-26(88404f3/a) [3m].</div><div>Language: racket [custom].</div>
<div>> (integer->roman 3.3)</div><div>integer->roman: contract violation</div><div> expected: integer?</div><div> given: 3.3</div><div>> (integer->roman 3.3)</div><div>. . C:\Program Files\Racket-Full-5.3.2.2\collects\racket\private\more-scheme.rkt:263:2: integer->roman: contract violation</div>
<div> expected: integer?</div><div> given: 3.3</div></div><div><br></div><div>That is, from the second time on I get the extraneous prefix. Is this expected?</div><div><br></div><div>P.</div><div><br></div>