[racket] Type for transposition idiom

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Dec 24 10:11:47 EST 2014

How ugly :-) -- Matthias




On Dec 23, 2014, at 8:41 AM, Alexander D. Knauth wrote:

> I got this to typecheck:
> 
> #lang typed/racket
> 
> (: my-list : (All (A B ...) (A B ... B -> (List A B ... B))))
> (define (my-list a . bs) (cons a bs))
> 
> (: transpose-vector-list (All (A B ...) (-> (List (Vectorof A) (Vectorof B) ... B)
>                                             (Vectorof (List A B ... B)))))
> (define (transpose-vector-list xss)
>   (apply vector-map (inst my-list A B ... B) xss))
> 
> 
> On Dec 22, 2014, at 9:38 PM, Neil Toronto <neil.toronto at gmail.com> wrote:
> 
>> Is it possible to get something like this to typecheck in Typed Racket?
>> 
>> 
>> #lang typed/racket
>> 
>> (: transpose-vector-list (All (A ...) (-> (List (Vectorof A) ... A)
>>                                          (Vectorof (List A ... A)))))
>> (define (transpose-vector-list xss)
>>  (apply vector-map list xss))
>> 
>> 
>> TBH, I haven't even gotten the non-dots version of this working, but the above type is what I really need.
>> 
>> Neil ⊥
>> 
>> ____________________
>> Racket Users list:
>> http://lists.racket-lang.org/users
> 
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20141224/1f25bd6e/attachment-0001.html>

Posted on the users mailing list.