乾杯!!!pl 言語で書く必要がある関数コントラクトについて質問があります (Lisp の貢献) コントラクトは (タイプ A のリスト)(タイプ B のリスト) を持ち、リストのリスト (タイプ AB) を返すと想定されます同時に 。これは私がこれまでに得たものですが、機能しません:
(: zip2 : (All (A B) (Listof A) (Listof B) -> (Listof (list A B))))
(define (zip2 listA listB)
(cond [(null? listA) (list (null null))]
[else (list ((car listA) (car listB)))])
(zip2 ((rest listA) (rest listB))))
(equal? (list (list 1 'a) (list 2 'b) (list 3 'c)) (zip2 (list 1 2 3) (list 'a 'b 'c)))