Alexander D. Knauth
2015-02-06 03:07:52 UTC
This program:
#lang typed/racket
(define n : Real 5)
(for/list ([i : Natural (in-range n)]) : (Listof Natural)
i)
And this program:
#lang typed/racket
(define n : Real 5)
(for/list ([i : Natural (identity (in-range n))]) : (Listof Natural)
i)
The first one produces an error:
. Type Checker: type mismatch
expected: Nonnegative-Integer
given: Integer in: (for/list ((i : Natural (in-range n))) : (Listof Natural) i)
The second one works fine:
'(0 1 2 3 4)
But why does the first one produce integer, but wrapping it in identity make it produce Nonnegative-Integer (Natural) ?
____________________
Racket Users list:
http://lists.racket-lang.org/users
#lang typed/racket
(define n : Real 5)
(for/list ([i : Natural (in-range n)]) : (Listof Natural)
i)
And this program:
#lang typed/racket
(define n : Real 5)
(for/list ([i : Natural (identity (in-range n))]) : (Listof Natural)
i)
The first one produces an error:
. Type Checker: type mismatch
expected: Nonnegative-Integer
given: Integer in: (for/list ((i : Natural (in-range n))) : (Listof Natural) i)
The second one works fine:
'(0 1 2 3 4)
But why does the first one produce integer, but wrapping it in identity make it produce Nonnegative-Integer (Natural) ?
____________________
Racket Users list:
http://lists.racket-lang.org/users