Je suis à la recherche d'une structure de dictionnaire de données arborescente qui est facile à mettre en œuvre Haskell. Avez-vous de l'expérience dans la mise en œuvre d'arborescences AVL ou d'arborescences RB? Je pense aussi aux arbres splay, mais je ne vois pas comment ils pourraient être implémentés en utilisant des données immuables.Quel dictionnaire arborescent est le plus facile à implémenter fonctionnellement?
4
A
Répondre
6
Les arborescences rouge-noir sont très faciles à implémenter dans un langage fonctionnel, car vous n'avez pas besoin de faire des efforts pour rogner quelques affectations, et the usual description of algorithms correspond très bien à la correspondance de modèle. Voir Okasaki, Red-Black Trees in a Functional Setting. En fait, son book, qui est la version révisée et étendue de son thesis, est une excellente référence pour de nombreuses structures de données purement fonctionnelles.
Questions connexes
- 1. VBA plus facile à implémenter, ODBC vs OLEDB?
- 2. Quel est le moyen le PLUS FACILE d'ajouter des données de formulaire à une URL?
- 3. Quel est le système de programmation réduit de carte distribué le plus facile à utiliser?
- 4. Quel outil d'analyse statique pour Java est le plus facile à étendre?
- 5. Quel est le moyen le plus facile de fusionner deux ou plusieurs fichiers pdf dans Delphi?
- 6. Quel est le framework AJAX le plus simple, le plus réputé et le plus expérimenté?
- 7. Solution Web SSO facile à implémenter?
- 8. Quel est le moyen le plus simple d'obtenir les clés les plus hautes et les plus basses d'un dictionnaire?
- 9. Quel est le moyen le plus efficace pour charger un dictionnaire en Python?
- 10. Quel est le moyen le plus pratique d'avoir des "fonctions dans un dictionnaire" en Java?
- 11. Quel est le moyen le plus simple d'afficher un dictionnaire modifiable?
- 12. Quel est le sélecteur le plus correct/le plus efficace?
- 13. Quel est le plus facile, solution la moins chère pour construire un site E-Commerce
- 14. Quel est le plus facile d'utiliser un tableau dynamique dans c/C++ dans Windows XP?
- 15. Quel est le moyen le plus facile/le meilleur d'obtenir un tableau de valeurs à partir d'une collection de tableaux?
- 16. Quel conteneur est le plus facile pour combiner JPEGS et MP3s comme vidéo?
- 17. Plus facile à charger avec le format d'exportation Blender OpenGL
- 18. Quel est le moyen facile de tester 304 réponses?
- 19. Est-il plus facile d'extraire ces données?
- 20. Quel est le meilleur, uploader le plus simple fichier ajax?
- 21. Quel algorithme Blowfish est le plus 'correct'?
- 22. Le moyen le plus facile d'apprendre l'unité
- 23. Quel code jQuery est le plus efficace?
- 24. Quel est l'uploader Flash le plus populaire?
- 25. Qu'est-ce que les plugins jQuery autocomplete est le plus facile à utiliser pour les rails?
- 26. Quel est le plus rapide à transmettre: XML ou DataTables?
- 27. Forums dans Django - laquelle de ces applications serait la plus facile à implémenter dans ce scénario?
- 28. Quel est le langage de programmation le plus courant/le plus dense actuellement disponible?
- 29. MS ACCESS - Tri arborescent hiérarchique
- 30. comment être plus facile d'analyser le JSON
Et pour compléter les liens d'Alexey, la bibliothèque Edison est basée sur le travail d'Okasaki, et pourrait être utile si vous voulez regarder quelques exemples d'implémentations dans Haskell de différentes structures de données: http://www.cs.princeton.edu/~ rdockins/edison/home / –