Group Admins

  • Profile picture of Karim
  • Profile picture of Jean

OpenMusic

Public Group active 6 hours, 47 minutes ago

User group for OpenMusic and computer-aided composition. Visit the Forum for discussions.

Opérations sur les listes

Author 2 Subscribed Users |
Profile photo of NG
NG

Bonjour,

Avant toute chose, je souhaite une très bonne année 2014 à toute l’équipe d’OM, et à toute la communauté de manière générale. =)

Pour revenir au sujet, je souhaite effectuer deux petites opérations sur les listes (que je n’arrive pas bien sûr…).
– La première consiste à compter les occurrences d’une liste. Par exemple : (0 0 0 1 2 2) doit me renvoyer (3 1 2) (ou ((0 0 0)(1)(2 2)) peut être plus facile ?).
– La deuxième est de modifier un élément de la liste. Par exemple : (0 4 3 2) doit me renvoyer (0 2 3 2) si je veux remplacer l’élément à l’indice 1 par 2.

Avant de me lancer dans la grande aventure qu’est OM, j’ai fait le tour de la documentation et des tutoriels. Mais je n’ai pas réussi à résoudre les problèmes posés. J’ai tenté un omloop et un mapcar associé à un lambda-mod pour le premier, mais je bloque rapidement sur le manque d’information sur les indices des éléments à traiter. Et pour le deuxième, je n’ai pas trouvé la commande pour le faire (s’il en existe un). Ce n’est pas un list-filter que je souhaite appliquer car je ne veux modifier qu’un seul élément. J’ai trouvé une solution fastidieuse qu’est de scinder la liste en trois puis de les concaténer mais c’est vraiment pas terrible. :s

Je vous remercie d’avance !

January 5, 2014 at 13:42 #7344
Profile photo of Karim
Karim

Bonne annee NG

Voila un patch pour les 2 problemes poses.
Tout d’abords, pour le premier, il y une fonction non integree ds OM, qu’il faudrait integrer.Pour le faire :
mettre le fichier group-sucessives.lisp dans le dossier patches qui se trouve dans le dossier /Applications/OM ***/patches
AVANT de lancer OM.
Puis ouvrir le patch.
Cela marche bien entendu, quand les elements sont successifs. Sinon on peut faire un sort.

POur le 2eme probleme, il y a une solution toute integree (c.f le patch.)

Amities, et bonne annee…
K

Attachments:
  1. NG.zip
January 5, 2014 at 16:09 #7347
Profile photo of NG
NG

Bonjour Karim,

Merci de m’avoir répondu. La solution du premier problème marche du tonnerre. Si j’ai bien compris, cette fonction a d’abord été écrite en CLisp puis importer sous OM ? Dans ce cas, ça résout pas mal de problèmes liés à la manipulation des listes.

Concernant le deuxième problème, effectivement j’avais déjà vu la fonction subs-psn, mais ce qui me dérangeait justement, c’est qu’elle prend en entrée une liste d’indices et non un seul. Je me suis mal exprimé : en fait, dans le cas où je veux lier cette fonction à un mapcar avec une condition omif, et bien je dois connaître la liste d’indices des éléments à modifier avant. Mais je ne peux la déterminer si je sais que la condition est vérifiée pour chacun des éléments de la liste. Pour faire simple, je souhaite modifier tels éléments à tels indices si la condition est satisfaite.

En fait, la solution du premier problème me résout indirectement le deuxième. =)

January 6, 2014 at 10:01 #7355

You must be logged in to reply to this topic.

Log in now