Quelle est la meilleure façon d'obtenir un type de données de file d'attente immuable, simple et efficace en Clojure ?
Il ne nécessite que deux opérations, enqueue et dequeue, avec la sémantique habituelle.
J'ai envisagé les listes et les vecteurs, bien sûr, mais je crois savoir qu'ils ont des performances relativement médiocres (c'est-à-dire O(n) ou pire) pour les modifications à la fin et au début respectivement - ce n'est donc pas l'idéal pour les files d'attente !
Idéalement, j'aimerais avoir une structure de données persistante avec O(log n) pour les opérations d'enqueue et de dequeue.