comment concevoir une fonction qui fusionne deux listes dans une liste. le premier élément de la première liste sera le premier élément de la nouvelle liste et le premier élément de la deuxième liste sera le deuxième élément de la nouvelle liste (a, b, c, d, e, f) (g, h, i) sera (a, g, b, h, c, i, d, e, f,)Scheme fusionner deux listes en une seule
3
A
Répondre
5
La procédure que vous essayez de mettre en œuvre est connu comme interleave
ou merge
. Parce que cela ressemble à des devoirs, je ne peux pas vous laisser une réponse claire, à la place, je vais vous orienter dans la bonne direction; remplir les blancs:
(define (interleave lst1 lst2)
(cond ((null? lst1) ; If the first list is empty
<???>) ; ... return the second list.
((null? lst2) ; If the second list is empty
<???>) ; ... return the first list.
(else ; If both lists are non-empty
(cons (car lst1) ; ... cons the first element of the first list
<???>)))) ; ... make a recursively call, advancing over the first
; ... list, inverting the order used to pass the lists.
12
Voici une implémentation purement fonctionnelle et récursive dans R6RS
(define (merge l1 l2)
(if (null? l1) l2
(if (null? l2) l1
(cons (car l1) (cons (car l2) (merge (cdr l1) (cdr l2)))))))
1
Il n'y a pas besoin de vérifier les deux listes: Voici une version simple:
(define (interleave lx lz)
(cond
[(empty? lx) lz]
[else (cons (first lx)(interleave lz (rest lx)))]))
(check-expect(interleave '() '())'())
(check-expect(interleave '(X X X X X X) '(O O O O O))
(list 'X 'O 'X 'O 'X 'O 'X 'O 'X 'O 'X))
(check-expect(interleave '(1 2 3) '(a b c d e f))
(list 1 'a 2 'b 3 'c 'd 'e 'f))
Questions connexes
- 1. Comment fusionner deux collections en une seule
- 2. Fusionner deux requêtes en une seule
- 3. fusionner deux tables en une seule
- 4. Fusionner deux requêtes SELECT en une seule
- 5. Combiner deux listes en une seule
- 6. Fusionner deux listes de listes - Python
- 7. fusionner deux listes par une carte clé
- 8. Fusionner deux listes de mots
- 9. Comment fusionner deux listes en utilisant LINQ?
- 10. fusionner deux listes en quantités égales
- 11. Fusionner deux listes imbriquées en Python
- 12. Comment fusionner deux listes IQueryable
- 13. Comment puis-je fusionner deux listes de dates en F #?
- 14. ITextSharp - fusionner deux pdfs en une seule page
- 15. Comment puis-je fusionner deux images en une seule?
- 16. Rejoindre et fusionner deux tables en une seule
- 17. Fusionner deux tables/concaténer des valeurs en une seule colonne
- 18. Comment fusionner deux règles de réécriture nginx en une seule?
- 19. Fusionner deux méthodes en une seule méthode générique
- 20. Fusionner ces deux expressions régulières en une seule
- 21. Comment fusionner ces deux boucles forEach (en utiliser une seule)?
- 22. Fusionner/combiner deux instructions select en une seule
- 23. Comment puis-je fusionner ces deux requêtes en une seule?
- 24. Comment fusionner ces deux requêtes en une seule?
- 25. Comment fusionner deux listes et fusionner est des listes internes sans duplication en C#
- 26. Comment fusionner deux listes de dictionnaire
- 27. Fusionner deux listes à l'aide Linq
- 28. Comment fusionner deux listes basées sur une propriété?
- 29. Fusionner plusieurs fonctions javascript en une seule
- 30. SQL Fusionner 2 lignes en une seule
Merci beaucoup. – John
Downvoter: vous voulez commenter? –
@ ÓscarLópez: Je ne fais que deviner, mais le Downvoter pourrait s'opposer à ce "parce que ça ressemble à un peu de travail". J'ai eu cette même question en ce moment et j'utilise le schéma dans un environnement de travail. Peut-être que le Downvoter a été rebuté par la présomption qu'il s'agit de l'origine des devoirs. Encore une fois, je devine juste. –