<div dir="ltr"><div>Two screen snapshots about the dramatics:<br></div><img alt="Inline image 1" src="cid:ii_144627cf1e8ef79c" width="1345" height="174"><img alt="Inline image 2" src="cid:ii_144627f103b938b8" width="1345" height="160"><br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 24, 2014 at 1:51 PM, WarGrey Gyoudmon Ju <span dir="ltr"><<a href="mailto:juzhenliang@gmail.com" target="_blank">juzhenliang@gmail.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><div><div><div><div>Does RVM  know the type information at runtime? Is typed racket just a front-end parser (target to contracts)? In theory is it possible to manually optimize untyped racket to make it as fast as the typed one in most cases?<br>

</div><br></div>To ignore the developing features, do we lose any expressivenesses?<br><br></div>(lambda ([ì 0.0] [ó 1.0] #:multiple [p 1])<br>   (define samples (flnormal-sample ì ó p))<br>   (apply  values (flvector->list samples))<br>

<br></div>This example returns non-fix-length multiple values,  it seems impossible to annotate its type.<br></div><div>It took me hours and hours to enumerate all possible ways but still unsolved.<br><br>(define: random-gaussian : (case-> [[#:mean Flonum] [#:stddev Flonum] [#:multiple False] -> Flonum]<br>

                                   [[#:mean Flonum] [#:stddev Flonum] [#:multiple Index] -> (Listof Flonum)])<br>  {lambda {#:mean [ì 0.0] #:stddev [ó 1.0] #:multiple [p #false]}<br>    (define: samples : FlVector (flnormal-sample ì ó (if (false? p) 1 p)))<br>

    (cond [(false? p) (flvector-ref samples 0)]<br>          [else (flvector->list samples)])})<br><br></div><div>Actually, DrRacket complains about (Values Flonum) <br></div><div>So 'multiple values' is evil!<br>

<br></div><div>Keyword argument is also the optional one, it's good for stopping (case->) becoming too complexity. But why not (false? p) tells Typed Racket to choose the first function types?<br><br><br></div><div>

<br><br></div></div>
</blockquote></div><br></div>