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...

39
demandé sur Evan Laforge 2012-03-18 23:25:59

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 type Doc est paramétré sur un autre type, et il a une instance Monad, vous permettant d'intégrer des "effets" dans des valeurs Doc. 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.

24
répondu ehird 2012-03-18 19:43:41