Made make-vector's type more convenient.

This commit is contained in:
Vincent St-Amour 2010-06-21 12:24:03 -04:00
parent 3bb0de0b53
commit 61545c4e75
4 changed files with 12 additions and 10 deletions

View File

@ -9,10 +9,11 @@
(: fannkuch (Integer -> Integer))
(define (fannkuch n)
(let ([pi (list->vector
(for/list: : (Listof Integer) ([i : Integer (in-range n)]) i))]
[tmp (make-vector n)]
[count (make-vector n)])
(let: ([pi : (Vectorof Integer)
(list->vector
(for/list: : (Listof Integer) ([i : Integer (in-range n)]) i))]
[tmp : (Vectorof Integer) (make-vector n)]
[count : (Vectorof Integer) (make-vector n)])
(let: loop : Integer
([flips : Integer 0]
[perms : Integer 0]

View File

@ -9,10 +9,11 @@
(: fannkuch (Integer -> Integer))
(define (fannkuch n)
(let ([pi (list->vector
(for/list: : (Listof Integer) ([i : Integer (in-range n)]) i))]
[tmp (make-vector n)]
[count (make-vector n)])
(let: ([pi : (Vectorof Integer)
(list->vector
(for/list: : (Listof Integer) ([i : Integer (in-range n)]) i))]
[tmp : (Vectorof Integer) (make-vector n)]
[count : (Vectorof Integer) (make-vector n)])
(let: loop : Integer
([flips : Integer 0]
[perms : Integer 0]

View File

@ -25,7 +25,7 @@
(: mover ((Integer Integer -> (values Integer Integer)) -> (Vectorof Integer)))
(define (mover fun)
(let ([t (make-vector size)])
(let: ([t : (Vectorof Integer) (make-vector size)])
(for ([p (in-range size)])
(vector-set! t p (let*-values ([(y x) (quotient/remainder p width)]
[(x y) (fun x y)])

View File

@ -135,7 +135,7 @@
[build-vector (-poly (a) (index-type (index-type . -> . a) . -> . (-vec a)))]
[vector-set! (-poly (a) (-> (-vec a) index-type a -Void))]
[vector-copy! (-poly (a) ((-vec a) index-type (-vec a) [index-type index-type] . ->opt . -Void))]
[make-vector (-poly (a) (cl-> [(index-type) (-vec -Nat)]
[make-vector (-poly (a) (cl-> [(index-type) (-vec (Un -Nat a))]
[(index-type a) (-vec a)]))]
[peek-char