27 votes

Quelle jolie bibliothèque d'impression?

Donc d'un coup d'œil au hackage je peux voir 5 jolie impression bibliothèques:

  • bon vieux HughesPJ dans un joli
  • wl-pprint-extras
  • wl-pprint-terminfo
  • wl-pprint
  • ansi-wl-pprint
  • wl-pprint-texte

Oh, attendez, était que 6? 6 jolie impression de bibliothèques... 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 la WL est plus simple et plus rapide, donc c'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 "extra" à propos de ce dernier, ou de ce que "Libre" signifie ici (le module de Texte.PrettyPrint.Libre).

wl-pprint-terminfo et ansi-wl-pprint les deux semblent être des variantes avec de terminal ANSI couleurs et autres joyeusetés, et semblent équivalents, sauf que wl-pprint-terminfo n'ont pas de docs.

wl-pprint-texte, bien sûr, utilise du Texte. Je ne sais pas comment beaucoup de différence qui fait réellement wrt vitesse.

La chose qui m'inquiète à propos de ceux-ci est que beaucoup d'entre eux ont plusieurs versions. Cela implique qu'ils ont eu fonctionnalités, correction de bugs, etc. Mais ont-ils tous eu la même correction de bugs? Je suis enclin à favoriser ansi-wl-pprint parce qu'il a de la documentation et de son dernier envoi était en 2012, et a un tas de versions qui implique que l'auteur travaille toujours sur elle.

Mais je ne sais pas pour sûr. Quelqu'un aurait des conseils? Et je suis sûr que les autres sont d'accord que 5 presque-mais-pas-tout à fait copier-coller des modules pouvait faire avec une certaine consolidation...

19voto

ehird Points 30215

Dans aucun ordre particulier:

  • Le "Libre" dans l' Text.PrettyPrint.Free signifie libre monade, conformément à la description du package: gratuitement de la monade basé sur la Wadler/Leijen assez imprimante"; son Doc type est réglée sur un autre type, et il a un Monad de l'instance, vous permettant d'embarquer des "effets" dans Doc valeurs. Il est utilisé par wl-pprint-terminfo pour ajouter la fonctionnalité de mise en forme, ce n'est pas une compétition, mais plutôt une extension de la bibliothèque par le même auteur. Voir la liste des ajouts dans wl-pprint-les extras de la documentation par rapport à wl-pprint de la liste pour des informations plus détaillées sur ce qu'il ajoute.

  • wl-pprint-terminfo utilise le terminfo paquet pour formater, donc ça ne marchera que sur POSIX-y des systèmes, alors que la norme ansi-wl-pprint utilise la norme ansi-terminal de paquet, de sorte qu'il marche sur Windows.

  • wl-pprint-le texte peut être utile si vous travaillez avec des Text déjà, mais il est peu probable d'avoir un impact sur les performances, sauf si vous utilisez la jolie imprimante vraiment beaucoup; ce n'est pas exactement un massivement de calcul intensif de la tâche.

Si je n'avais pas d'exigences spécifiques, je serais probablement utiliser simplement le joli paquet, car c'est l'un de la chaussure de paquets, et donc disponible partout. J'irais pour ansi-wl-pprint si je voulais le formatage, et wl-pprint texte si je travaillais avec des Text, mais sinon je ne vois pas vraiment particulièrement convaincante raison de l'utilisation d'une bibliothèque tierce.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X