Je l'ai entendu dire que LATEX est complète Turing. Y a-t-il des programmes écrits en LaTeX?

StackOverflow https://stackoverflow.com/questions/2968411

  •  24-10-2019
  •  | 
  •  

Question

Il est possible de faire des choses intéressantes avec ce qui serait normalement considéré comme langues typesetting. Par exemple, vous pouvez construire l'ensemble de Mandelbrot utilisant postscript.

Il est suggéré dans cette question mathoverflow peut être que LATEX Turing-complet . Cela implique la possibilité d'écrire des programmes arbitraires (bien qu'il ne soit pas facile!). Quelqu'un sait-il d'un exemple concret d'un tel programme dans LATEX, qui fait quelque chose de très inhabituel avec la langue?

Était-ce utile?

La solution

Dans le numéro 13 de Le lecteur Monad , Stephen Hicks écrit à propos de la mise en œuvre de la solution à un concours de IPCF (impliquant la navigation rover Mars) en TeX, avec une utilisation abondante des macros. Amusingly, la sortie de la solution lorsque composer une carte postscript de la trajectoire du mobile.

Autres conseils

Sinon, Andrew Greene a écrit un interpréteur BASIC en TeX ( plus de détails ). Cela peut compter comme un peu pervers.

La bibliothèque pgfmath me surprend toujours. Mais sur une note liée Turing plus: il est possible d'écrire une machine de Turing réelle TeX, comme par http://en.literateprograms.org/Turing_machine_simulator_ (latex) . Il est juste une façon astucieuse d'utiliser des extensions en TeX.

PostScript est complet ainsi Turing, si vous lisez le manuel vous serez surpris par les capacités générales de programmation de celui-ci (au moins, j'étais).

\ def \ K # 1 # 2 # {2}

\ def \ S # 1 # 2 # 3 {# 1 # 3 {# 2 # 3}}

Je ne sais pas si ce que qualifie Programmation en tant que tel, mais je l'ai récemment commencer à faire quelque chose un peu comme substance orientée objet dans LaTeX. (Vous n'avez pas besoin de connaître les mathématiques à suivre ce qui suit.) Dans les documents récents, je l'ai écrit au sujet de catégories , qui ont objets et morphismes . Comme il ont été un certain nombre de ceux-ci, je voulais un style cohérent de sorte que, par exemple, ?? était une catégorie avec un objet typique C et morphisme typique c . Ensuite, je voudrais aussi avoir ?? avec D et d . Donc, je définis une « classe », dites « catégorie » (vous devez être un mathématicien pour comprendre la plaisanterie là-bas), et déclare que C est une instance de cette classe, et avoir accès à \ CCAT, \ COBJ, \ CMOR et ainsi de suite. La raison pour ne pas faire \ cat {c}, \ obj {c}, et \ mor {c}, et ainsi de suite, est que parfois ces catégories ont des noms spéciaux et ainsi après avoir déclaré l'instance, je peux modifier son nom très facilement (tout simplement Redéfinir \ CCAT - bien, en fait \ mathccat depuis \ CTAC est une surcouche qui sélectionne 'mathccat en mode mathématique et \ textccat en mode texte). (Bien sûr, il est un peu plus compliqué que le suggère ci-dessus et les choses OO est vraiment utile quand je veux définir une nouvelle catégorie comme une variante d'un ancien (il peut même traiter le cas où l'ancien n » t existent encore.).)

Bien qu'il ne peut pas être considéré comme la programmation réelle, je l'utilise dans les documents et ne trouve utile - les autres réponses (jusqu'à présent) ont plus de la sensation de montrer les capacités de LaTeX que d'une solution raisonnable à un problème pratique.

Je connais quelqu'un qui a écrit la réponse à un ACM problème concours LaTeX.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top