Я не впевнений, що це кваліфікується як програмування як таке, але нещодавно я почав робити щось на зразок об’єктно-орієнтованих речей у LaTeX. (Вам не потрібно знати математики, щоб слідувати наступному.) В останніх роботах я писав про категорії , які мають об’єкти та морфізми . Оскільки таких було досить багато, я хотів мати послідовний стиль, щоб, скажімо, 𝒞 була категорією з типовим об’єктом С і типовим морфізмом с . Тоді я б також мав 𝒟 з D і d. Тож я визначаю "клас", кажу "категорію" (вам потрібно бути математиком, щоб зрозуміти там жарт), і заявляю, що C є екземпляром цього класу, а потім маю доступ до \ ccat, \ cobj, \ cmor і так далі. Причиною відмови \ cat {c}, \ obj {c} та \ mor {c} тощо є те, що іноді ці категорії мають спеціальні імена, і тому, оголосивши екземпляр, я можу дуже легко змінити його ім'я (просто перевизначте \ ccat - ну, насправді \ mathccat, оскільки \ ccat - це обгортка, яка вибирає \ mathccat у математичному режимі та \ textccat у текстовому режимі). (Звичайно, це трохи складніше, ніж пропонується вище, і речі з ОО дійсно приносять користь, коли я хочу визначити нову категорію як варіант старої (це може навіть мати справу з випадком, коли стара не робить) ще не існує.).)
Хоча це може не кваліфікуватися як власне програмування, я використовую його в роботах і вважаю його корисним - інші відповіді (поки що) мають більше відчуття демонстрації можливостей LaTeX, ніж розумного вирішення практичної проблеми.