Je peux supprimer l'élément d'une liste, mais je n'ai aucune idée comment écrire une fonction dans le schéma pour remplacer toutes les occurrences d'un élément dans une liste avec un autre élément. Toute aide sera appréciée.Une fonction dans le schéma pour remplacer toutes les occurrences d'un élément dans une liste avec un autre élément
2
A
Répondre
3
Une version simple peut être conçue comme ceci:
(define (replace old-element new-element list)
; if the list is null, just return null
; else if the car of the list is equal to old-element
; run replace on the rest of the list, and cons new-element onto it
; else
; run replace on the rest of the list, and cons the car onto it)
(je quittais les détails à vous, puisque tu dois apprendre en faisant.)
Rappelez-vous, dans le schéma de la façon la plus naturelle Les choses seront généralement d'assembler une nouvelle liste pièce par pièce à partir de votre ancienne liste, pas d'essayer de faire de petits changements un à la fois à votre ancienne liste.
Notez que vous pouvez également utiliser map
pour le faire de manière beaucoup plus concise.
La syntaxe ici est mauvaise, elle devrait être '(define (replace old new list) ...)'. En ce qui concerne l'implémentation réelle - ne faites pas cela, utilisez 'map'. –
J'ai supposé qu'il travaille à partir d'un guide ou d'un manuel qui n'a pas encore trouvé de map. – mquander
Un tel livre aurait fourni un type similaire de guide, donc il n'est pas nécessaire parce que le livre le couvre, ou parce que 'map' est disponible. –