2016-11-10 40 views
1

SCHEME /球拍/ R5RS配對2列表方案

試圖進行遞歸過程,將兩個相同大小的列表配對。只是不能得到遞歸調用的權利。 這是我的,我卡住了。

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

測試用例: (對 '(1 2 3)'(ABC)) 所需的輸出:(。(1)(2 b)中(3 C)) 電流輸出:( 1. a)

回答

2

你只需要cons當前結果就遞歸調用該程序,就是這樣!

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

這是否也是一個可接受的解決方案?

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