2016-11-10 8 views
1

SCHEME/Racket/R5RSペアリング2リストスキーム

同じサイズの2つのリストをペアにする再帰的プロシージャを作成しようとしています。再帰的な呼び出し権を得ることはできません。 これは私が持っているもので、私は立ち往生しています。

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

テストケース: (ペア '(1 2 3)'(ABC)) 所望の出力:(。。。(1、A)(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))) 
関連する問題