0

乾杯!!!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)))
4

2 に答える 2

1
(define (zip2 listA listB)
 (cond [(null? listA) null]
       [else (cons (list (car listA) (car listB))
                   (zip2 (rest listA) (rest listB)))]))
于 2013-06-06T13:21:48.663 に答える