<div dir="ltr"><div>`inexact->exact` is more general than some `float->integer`:<br>> (inexact->exact .75)<br>3/4<br><br></div>I agree it is generally cumbersome to write `(inexact->exact (round <exp that returns a float but you want an int>))`, but it's sufficiently easy to write a wrapper by yourself. Although I wouldn't be against predefined some function that does something like that, but there are many ways to do things like that, so I guess that's the problem.<br>

<br>Laurent<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Mar 15, 2014 at 8:23 PM, Tom Dean <span dir="ltr"><<a href="mailto:tld@google.com" target="_blank">tld@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I encountered the following error — imagine a function that returns 3.0 instead of just 3.0 as shown example below:</div>

<div><br></div><div><font face="courier new, monospace">> (split-at-right (range 8) 3.0)</font></div>
<div><font face="courier new, monospace">split-at-right: contract violation</font></div><div><font face="courier new, monospace">  expected: exact-nonnegative-integer?</font></div><div><font face="courier new, monospace">  given: 3.0</font></div>


<div><font face="courier new, monospace">  context...:</font></div><div><font face="courier new, monospace">   /Applications/Racket/collects/racket/list.rkt:191:0: split-at-right</font></div><div><font face="courier new, monospace">   /Applications/Racket/collects/racket/private/misc.rkt:87:7</font></div>


<div><br></div><div>The obvious  fixes didn't work ...</div><div><br></div><div><font face="courier new, monospace">> (split-at-right (range 8) (round 3.0))</font></div><div><font face="courier new, monospace">split-at-right: contract violation</font></div>


<div><font face="courier new, monospace">  expected: exact-nonnegative-integer?</font></div><div><font face="courier new, monospace">  given: 3.0</font></div><div><font face="courier new, monospace">  context...:</font></div>


<div><font face="courier new, monospace">   /Applications/Racket/collects/racket/list.rkt:191:0: split-at-right</font></div><div><font face="courier new, monospace">   /Applications/Racket/collects/racket/private/misc.rkt:87:7</font></div>


<div><font face="courier new, monospace">> </font></div><div><br></div><div>... and I couldn't find something like real->integer, but inexact->exact came to the rescue: </div><div><br></div><div><div><font face="courier new, monospace">> (split-at-right (range 8) (inexact->exact 3.0))</font></div>


<div><font face="courier new, monospace">(split-at-right (range 8) (inexact->exact 3.0))</font></div><div><font face="courier new, monospace">'(0 1 2 3 4)</font></div><div><font face="courier new, monospace">'(5 6 7)</font></div>


<div><font face="courier new, monospace">> (split-at-right (range 8) 3.0)</font></div><div><font face="courier new, monospace">split-at-right: contract violation</font></div><div><font face="courier new, monospace">  expected: exact-nonnegative-integer?</font></div>


<div><font face="courier new, monospace">  given: 3.0</font></div><div><font face="courier new, monospace">  context...:</font></div><div><font face="courier new, monospace">   /Applications/Racket/collects/racket/list.rkt:191:0: split-at-right</font></div>


<div><font face="courier new, monospace">   /Applications/Racket/collects/racket/private/misc.rkt:87:7</font></div><div><font face="courier new, monospace">></font></div></div><div><br></div><div>Still, it doesn't seem particularly elegant.</div>


<div><br></div></div>
<br>____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div>