.NET的Jupyter。“像python一样”

几个月前,微软在.NET中谈论了Jupyter。但是,关于该主题的活动很少,并且该主题非常有趣。但是,想到什么很酷呢?我决定Entity从符号代数库中方便地派生该类







看起来比python中的要酷。这很容易做,很有趣。我请您切切!



关于朱皮特



有点像用于创建交互式笔记本的IDE。您不必在熟悉的环境中一次运行所有代码,而是在其中逐块运行它,以保存变量的状态。对于研究和简单的脚本“计算某事”而言,这非常方便。



关于点网/互动



该项目仅允许您将Dotnet嵌入Jupiter。也就是说,您可以立即编写



并获得代码结果。



有些芯片开箱即用





关于安古里数学



它是用于.NET的相对较小的符号代数库,用于处理数学表达式。当然,您可以在一行中处理数学表达式,但这并不总是方便/美观的。



所有数学表达式都以某种方式从Entity具有Latexise返回字符串的方法的类继承因此,剩下的就是渲染它。



包埋乳胶



我们可以为类型注册自己的推断,这就是我要做的:



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不支持F#)。



就是说,我们简单地注册该类型ILatexiseable应以html格式显示,并且代码本身将由我们的函数生成。对于渲染,我选择了MathJax,尽管缓存js脚本可能很有意义,但这是为了将来的更新。



好了,仅此而已,现在将从此接口继承的所有表达式都可以精美呈​​现。这就是在C#中的样子:







这到底是怎么回事?
1. extension- ToEntity(),

2.

3.





由于Jupiter适用于不需要遵循任何设计要求的一小段代码,因此F#更适合于此。因此,从本文开头的屏幕快照可以明显看出,它也受支持。例如,学校方程的解决方案如下所示:







未来的计划



我非常喜欢.NET,但我也非常喜欢Jupyter。因此,Interactive让我感到非常高兴,并且我赶紧为AngouriMath提供Interactive支持,以在LaTeX中显示表达式。但进一步-更有趣。我正在考虑做一些Entity.Plot()可以立即显示函数图的类型我认为,对于简单的用例,确实需要一块。



如果您想尝试不安装任何必要的东西,可以在这里戳一下:(警报:由于某些原因,加载时间很长,您将不得不等待)



谢谢您的关注!这是一个简短的说明。



链接



1. Jupyter -为交互式编程方便的浏览器环境

2. .NET互动非常精彩的事多亏您可以使用在木星DOTNET -

3 AngouriMath -为此我写了一个数学库包装为latech

4. MyBinder -懒惰的演示



All Articles