Entity
partir de la bibliothèque d'algèbre symbolique:
ça a l'air plus cool qu'en python. C'est facile à faire, c'est très amusant. Je vous invite sous la coupe!
À propos de Jupyter
C'est une sorte d'IDE pour créer des blocs-notes interactifs. Au lieu d'exécuter tout le code en même temps dans des environnements familiers, vous l'exécutez ici par blocs, en enregistrant les états des variables. Il est très pratique pour la recherche et les scripts simples de «calculer quelque chose».
À propos de dotnet / interactive
Ce projet vous permet simplement d'intégrer Dotnet dans Jupiter. Autrement dit, vous pouvez littéralement écrire
ET obtenir les résultats du code immédiatement.
Et certaines puces fonctionnent hors de la boîte
À propos d' AngouriMath
Il s'agit d'une bibliothèque d'algèbre symbolique relativement petite pour .NET pour travailler avec des expressions mathématiques. Bien sûr, vous pouvez travailler avec des expressions mathématiques sur une seule ligne, mais ce n'est pas toujours pratique / beau.
Toutes les expressions mathématiques héritent en quelque sorte d'une classe
Entity
qui a une méthode Latexise
qui renvoie une chaîne. Par conséquent, il ne reste plus qu'à le rendre.
Intégration de Latech
Nous avons la possibilité d'enregistrer notre propre inférence pour nos types, ce que je fais:
let magic() =
let register (value : ILatexiseable) = $@"
<script src='https://polyfill.io/v3/polyfill.min.js?features=es6'></script>
<script id='MathJax-script' async src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'></script>
\[{value.Latexise()}\]
"
Formatter.Register<ILatexiseable>(register, "text/html")
(Habr pour une raison quelconque ne prend pas en charge F #)
Autrement dit, nous enregistrons simplement que le type
ILatexiseable
doit être affiché au format html, et le code lui-même sera généré par notre fonction. Pour le rendu, j'ai pris MathJax, bien qu'il soit probablement logique de mettre en cache le script js, mais c'est pour les futures mises à jour.
Eh bien, c'est tout, maintenant toutes les expressions héritées de cette interface seront magnifiquement rendues. Voici à quoi cela ressemble en C #:
Que se passe-t-il exactement ici?
1. extension-
2.
3.
ToEntity()
,
2.
3.
Puisque Jupiter est destiné à de petits morceaux de code qui ne doivent suivre aucune exigence de conception, F # est mieux adapté pour cela. Par conséquent, comme il ressort de la capture d'écran au début de l'article, il est également pris en charge. Par exemple, la solution de l'équation scolaire ressemble à ceci:
Plans futurs
Je suis un très grand fan de .NET mais j'aime aussi beaucoup Jupyter. Par conséquent, Interactive m'a fait très plaisir, et je me suis empressé de faire du support Interactive pour AngouriMath pour l'affichage d'expressions dans LaTeX. Mais plus loin - plus intéressant. Je pense faire quelque chose du type
Entity.Plot()
qui afficherait immédiatement le graphique de la fonction. Pour des cas d'utilisation simples, une pièce est vraiment nécessaire, je pense.
Si vous voulez essayer sans rien installer du nécessaire, vous pouvez fouiller ici: (alarme: pour une raison quelconque, le chargement prend beaucoup de temps, vous devrez attendre)
Merci de votre attention! Telle est une courte note.
Liens
1. Jupyter - un environnement de navigateur pratique pour la programmation interactive
2. .NET Interactive - la chose très brillante, grâce à laquelle vous pouvez utiliser le dotnet dans Jupiter
3. AngouriMath - une bibliothèque mathématique pour laquelle j'ai écrit un wrapper pour latech
4. MyBinder - une démo pour les paresseux