Comment faire pour supprimer les parenthèses imbriquées en LISP

Comment puis-je supprimer les parenthèses imbriquées de manière récursive en Common LISP comme

  (unnest '(a b c (d e) ((f) g))) => (a b c d e f g)
  (unnest '(a b))                 => (a b)
  (unnest '(() ((((a)))) ()))     => (a)

Grâce

Vous n'avez pas supprimer les parenthèses. Les parenthèses ne sont qu'un aspect d'une représentation imprimée pour les listes. Ce que vous faites est l'aplatissement des listes.

OriginalL'auteur bubdada | 2010-04-21