Quelle jolie bibliothèque d'impression? [fermé]
Donc, d'un coup d'œil au hackage je peux voir 5 jolie impression bibliothèques:
- bon vieux HughesPJ dans pretty
- wl-pprint-extras
- wl-pprint-terminfo
- WL-pprint
- ANSI-wl-pprint
- wl-pprint-texte
Oh attends, c'était 6? 6 jolies bibliothèques d'impression... non, attendez, nous allons venir à nouveau.
De toute façon, ils sont tous Wadler-Leijen sauf bien sûr HughesPJ. Ma compréhension est que WL est plus simple et plus rapide, donc est probablement préféré pour le nouveau code.
Wl-pprint et wl-pprint-extras semblent être les mêmes... Je ne peux pas dire ce qui est " supplémentaire "à propos de ce dernier, ou ce que" Gratuit " signifie ici (le module est du texte.PrettyPrint.Gratuit).
Wl-pprint-terminfo et ansi-wl-pprint semblent tous deux être des variantes avec des couleurs de terminal ANSI et autres, et semblent équivalentes sauf que wl-pprint-terminfo n'a pas de docs.
Wl-pprint-text, bien sûr, utilise du texte. Je ne sais pas combien de différence cela fait réellement wrt vitesse.
Ce qui m'inquiète à ce sujet, c'est que beaucoup d'entre eux ont de nombreuses versions. Cela implique qu'ils ont eu des fonctionnalités ajoutées,des bugs corrigés, etc. Mais ont-ils tous eu les mêmes bugs corrigés? Je suis enclin à favoriser ansi-wl-pprint car il a de la documentation et son dernier téléchargement était en 2012, et a un tas de versions qui implique que l'auteur travaille toujours dessus.
Mais je ne sais pas avec certitude. Quelqu'un aurait des conseils? Et je suis sûr que d'autres sont d'accord que 5 presque mais pas tout à fait les modules copier-coller pourraient faire avec une certaine consolidation...
1 réponses
Sans ordre particulier:
Le "libre" dans
Text.PrettyPrint.Free
signifie monade libre , selon la description du paquet :" une monade libre basée sur la jolie imprimante Wadler/Leijen"; son typeDoc
est paramétré sur un autre type, et il a une instanceMonad
, vous permettant d'intégrer des "effets" dans des valeursDoc
. Ceci est utilisé par WL-pprint-terminfo pour ajouter des fonctionnalités de formatage; ce n'est pas un paquet concurrent, mais plutôt une bibliothèque d'extension du même auteur. Voir la liste des ajouts dans la documentation de WL-pprint-extras par rapport à la liste de WL-pprint pour des informations plus détaillées sur ce qu'il ajoute.Wl-pprint-terminfo utilise le paquet terminfo pour faire le formatage, donc cela ne fonctionnera que sur les systèmes POSIX-y, alors que ansi-wl-pprint utilise le paquet ANSI-terminal , donc cela fonctionnera sur Windows.
Wl-pprint-text peut être utile si vous travaillez déjà avec
Text
, mais il est peu probable qu'il ait un majeur impact sur les performances sauf si vous utilisez la jolie imprimante vraiment fortement; ce n'est pas exactement une tâche massivement intensive en calcul.
À moins d'avoir des exigences spécifiques, j'utiliserais probablement le joli paquet, car c'est l'un des paquets de démarrage, et donc disponible partout. J'irais pour ansi-wl-pprint si je voulais le formatage, et wl-pprint texte si je travaillais avec Text
, mais sinon je ne vois vraiment pas particulièrement de raison impérieuse d'utiliser un la troisième partie de la bibliothèque.