Scheme 配对2列表方案

Scheme 配对2列表方案,scheme,r5rs,Scheme,R5rs,方案/球拍/R5RS 尝试创建一个递归过程,使两个大小相同的列表成对。只是不能正确地进行递归调用。 这就是我所拥有的,我被困住了 (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)您只

方案/球拍/R5RS

尝试创建一个递归过程,使两个大小相同的列表成对。只是不能正确地进行递归调用。 这就是我所拥有的,我被困住了

(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)

您只需将当前结果转换为过程的递归调用即可

(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)))