As Alex said.

The problem is not with `in-range`, but rather with TR's inference
having trouble with the loop in the expansion of `for`.

Asumu has been working on new versions of the `for` forms which should
play nicer with inference. Those should hopefully solve this problem.

Vincent




At Sun, 24 May 2015 13:54:44 -0400,
Alexander D. Knauth wrote:
> 
> This happens because for treats in-range specially, so the expanded code
> doesn’t use in-range at all, and TR doesn’t recognize that it originally
> came from a use of in-range.
> 
> This fixes it:
> #lang typed/racket
> (for ([i (identity (in-range 0 1 1/10))])
> (display i))
> 
> And this also fixes it:
> #lang typed/racket
> (for ([i (in-range (ann 0 Exact-Rational) 1 1/10)])
> (display i))
> 
> On May 24, 2015, at 1:36 PM, Antonio Menezes Leitao
> <[email protected]> wrote:
> 
>     Hi,
>     
>     
>     The following code triggers a type error:
>     
>     
>     
>     (for ([i (in-range 0 1 1/10)])
>     (display i))
>     
>     
>     
>     Type Checker: type mismatch
>     expected: Integer
>     given: Exact-Rational in: (for ((i (in-range 0 1 1/10))) (display
>     i))
>     
>     
>     Note that, in Racket, in-range expect Numbers as arguments (and not
>     Integers).
>     
>     
>     The following one works fine:
>     
>     
>     
>     (for ([i (range 0 1 1/10)])
>     (display i))
>     
>     
>     Is this the intended behavior?
>     
>     
>     Best,
>     António.
>     
>     
>     -- 
>     You received this message because you are subscribed to the Google
>     Groups "Racket Developers" group.
>     To unsubscribe from this group and stop receiving emails from it,
>     send an email to [email protected].
>     To post to this group, send email to [email protected].
>     To view this discussion on the web visit
>     
> https://groups.google.com/d/msgid/racket-dev/CAJQmiZXfD_8sTauRy07mY8QA9aQwsT_
>     89o-%3D6u-PE3b9K0GKgw%40mail.gmail.com.
>     For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/4B26BC02-C80B-4EB5-8B51-9474E88B4D84%40knauth.
> org.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/m2r3q4xqrd.wl-stamourv%40ccs.neu.edu.
For more options, visit https://groups.google.com/d/optout.

Reply via email to