配对 2 列表方案

Pairing 2 lists Scheme

SCHEME/Racket/R5RS

正在尝试创建一个将 2 个相同大小的列表配对的递归过程。只是无法正确进行递归调用。 这就是我所拥有的,我被卡住了。

(define (pairs list1 list2)
  (if (or (null? list1) (null? list2))
      '()
        (cons (car list1) (car list2))
        ))

测试用例: (对'(1 2 3)'(a b c)) 期望的输出:((1。a)(2。b)(3。c)) 当前输出:(1 . a)

你只需要cons当前结果到过程的递归调用,就是这样!

(define (pairs list1 list2)
  (if (or (null? list1) (null? list2))
      '()
      (cons (cons (car list1) (car list2))
            (pairs (cdr list1) (cdr list2)))))

这也是一个可以接受的解决方案吗?

(define pairs
      (lambda (x y)
        (map cons x y)))