干杯!!!我有一个关于我需要用 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)))