OVH Cloud OVH Cloud

faire référence à la fonction courrante en elisp.

2 réponses
Avatar
Matthieu Moy
Bonjour,

J'ai une question tirée par les cheveux en elisp.

Le but est d'ajouter une fonction à un hook, mais de l'en enlever dès
qu'elle est executée. (En gros, de programmer son execution une et une
seule fois au prochain (run-hooks ...) ).

On pourrait faire

(defun f ()
...
(remove-hook 'hook f)
)

(add-hook 'hook '(lambda () (f ...)

Là où ca se complique, c'est que la fonction en question devrait être
une lambda fonction. Je voudrais donc écrire

...
(add-hook 'hook '(lambda ()
...
(remove-hook 'hook <moi même>)))

ou <moi même> serait la fonction lambda en train d'être définie ...

Est-ce que quelqu'un a une idée de la façon de faire ? (Si possible,
un truc élégant, tant qu'on y est ...)

--
Matthieu

2 réponses

Avatar
Olve
Bonsoir,

Si j'ai bonne memoire, un hook est une liste :-)
Donc si tu garantis que ta fonction est au debut, un
petit coup de cdr doit suffir !!
Non teste.
Bon courage ! Amities,
Olivier
Avatar
Matthieu Moy
Olve writes:

Bonsoir,

Si j'ai bonne memoire, un hook est une liste :-)



Oui.

Donc si tu garantis que ta fonction est au debut, un
petit coup de cdr doit suffir !!



Non, je ne garantie pas que ma fonction est au début, et il risque
même d'y en avoir plusieurs !

--
Matthieu