2009-09-30 12 views

Répondre

0

Vous devez construire votre liste à partir de deux extrémités. Je suggère ce qui suit:

  1. Créer deux listes de l'existant
  2. Mettre les deux nouvelles listes ensemble lorsque la liste d'entrée est vide, l'inversion de la deuxième liste avant de les mettre ensemble.

donc vous devriez vous attendre l'appel de fonction pour ressembler à:

 
(myFunc inputList forwardList willBeBackwardList) 

et quand inputList est vide que vous voulez faire quelque chose comme

 
(append forwardList (reverse willBeBackwardList)) 

(noms de fonctions intégrées exactes variez selon le lisp que vous utilisez).

1

Voici une façon Clojure (ce qui est un dialecte Lisp):

user=> (def l '((c d) (4 6) (m n) (z z))) 
user=> (concat (map first l) (reverse (map second l))) 
(c 4 m z z n 6 d) 

dépend vraiment de votre problème à ce que la mise en œuvre convient le mieux.

Questions connexes