2016-11-10 10 views
1

SCHEMA/Racket/R5RSPaarung 2 Listen Scheme

Versuch, eine rekursive Prozedur zu machen, die 2 Listen der gleichen Größe koppelt. Ich kann den rekursiven Aufruf nicht richtig machen. Das ist was ich habe und ich stecke fest.

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

Test Case: (Paars (1 2 3) "(abc)) gewünschte Ausgabe: (... (1 a) (2 b) (3 c)) Stromausgang: (1. a)

Antwort

2

Sie müssen nur cons das aktuelle Ergebnis auf den rekursiven Aufruf der Prozedur, und das ist es!

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

Wäre das eine akzeptable Lösung?

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