2012-09-12 2 views
0

il s'agit d'une fonction récursive flip dans Scheme qui accepte comme seul argument une liste d'atomes de longueur arbitraire et retourne cette liste avec les éléments adjacents retournés. En d'autres termes, la fonction alterne les éléments d'une liste (c'est-à-dire, en donnant une liste [a1, a2, a3, a4, a5, a6 ..., un], produit [a2, a1, a4, a3 , a6, a5, ...]). Si n est impair, un reste à la fin de la liste résultante. n'utilisant aucune fonction auxiliaire.DR Racket Retourner une liste de la lettre

ici est mon exemple

> (flip '()) 
() 

> (flip '(a)) 
(a) 

> (flip '(a b)) 
(b a) 

> (flip '(a b c d)) 
(b a d c) 

> (flip '(a b c d e)) 
(b a d c e) 
+1

Ok, donc il y a une maison affectation de travail ici. Qu'est-ce qui vous pose problème? – dyoo

Répondre

2

C'est des devoirs, donc je ne peux pas vous donner une réponse directe. Voici l'idée générale de la solution, remplir les blancs:?

(define (flip lst) 
    (cond ((null? lst)     ; The list is empty: 
     <???>)      ; return the empty list. 
     ((null? (cdr lst))    ; The list has a single element: 
     <???>)      ; return a list with the single element. 
     (else       ; The list has at least two elements: 
     (cons <???>     ; cons the second element ... 
       (cons <???>    ; ... to the first element ... 
        (flip <???>)))))) ; ... and advance two elements at once. 
+1

thx pour l'indice ... –

0

(define (LST flip) (cond ((null LST)
null)
((null (cdr LST))
LST)
(autre
(contre (voiture (cdr LST))
(contre (LST voiture)
(feuilles mobiles (cdr (cdr LST))))))))

Questions connexes