gpt4 book ai didi

java - 有没有可以直接执行MathType公式的编程语言?

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:04 36 4
gpt4 key购买 nike

让我们以Java为例。富文本IDE暂时还没有找到,纯文本IDE是主流。

我已经用github上的代码阅读了很多次IDE中的Latex公式,如果没有任何类似TeX的软件的帮助,很难理解这些符号。

我只是预想了这样一个IDE的诞生,该IDE可以集成Word,OneNote等,其中可以突出显示类之类的代码,在编辑文本时像普通/丰富的html一样复制粘贴图片,可以将多媒体对象用作解释,就像matlab helper不是普通的javadoc,可以一次在一个文件中与多列中的2个或更多类进行比较,这是Java类层次结构的绝佳视图,就像OneNote可以做的那样,这样我就可以摆脱在纯文本编辑器中只能将代码写入一列的限制。坦白地说,OneNote不是IDE,而是真正的富文本IDE原型,它包含编写/排序代码(例如运行代码)的所有直观性,但是,这些功能就像一项专利,只能在OneNote中看到,并且在任何著名的或较少编程的环境中都找不到。从历史上看,我不禁回想起铁轨宽度的发展限制了想象力的大小,每当我使用OneNote时,这种想法就会在我的大脑中重复出现。

而且,尽管许多IDE都包含突出显示语法,但它仍然是纯文本代码,只需删除解释区域,就可以从富文本格式非常快速地生成该代码。

类似于Mathtype的公式比纯文本IDE中的计划文本公式要好得多,我可以在OneNote中通过将代码和公式粘贴在一起来感觉到这种情况,尤其是当它是小数或生根公式时。可惜,公式不能直接运行。实际上,它们可以从相同的格式生成,即类似xml的富文本格式。

我刚刚从Unicode网站的PDF文件中找到了一个有趣的这样的代码片段,它比捕获程序功能的真实功能要好得多:



void IHBMWM(void)
{
gammap = gamma*sqrt(1 + I2);
upsilon = cmplx(gamma+gamma1, Delta);
alphainc = alpha0*(1-(gamma*gamma*I2/gammap)/(gammap + upsilon));
if (!gamma1 && fabs(Delta*T1) < 0.01)
alphacoh = -half*alpha0*I2*pow(gamma/gammap, 3);
else
{
Gamma = 1/T1 + gamma1;
I2sF = (I2/T1)/cmplx(Gamma, Delta);
betap2 = upsilon*(upsilon + gamma*I2sF);
beta = sqrt(betap2);
alphacoh = 0.5*gamma*alpha0*(I2sF*(gamma + upsilon)/(gammap*gammap – betap2))*((1+gamma/beta)*(beta – upsilon)/(beta + upsilon)- (1+gamma/gammap)*(gammap – upsilon)/(gammap + upsilon));
}
alpha1 = alphainc + alphacoh;
}







void IHBMWM(void)
{
𝛿 = 𝛿 • (1 + 𝐼 2);
𝜐 = 𝛿 + 𝛿 1 + 𝑖 • Δ ;
𝛽 _inc = 𝛽 0 • (1 − (𝛿 • 𝛿 • 𝐼 2/𝛿 ’ )/(𝛿 ’ + 𝜐 ));

if (! 𝛿 1|| fabs(Δ • 𝑈 1) < 0.01)
𝛽 _coh = − .5 • 𝛽 0 • 𝐼 2 • pow(𝛿 /𝛿 ’ , 3);
else
{
𝛤 = 1/𝑈 1+ 𝛿 1;
𝐼 2ℱ = (𝐼 2/𝑈 1)/(Γ + 𝑖 • Δ );
𝛾 2= 𝜐 • (𝜐 + 𝛿 • 𝐼 2ℱ );
𝛾 = 𝛾 2;
𝛽 coh= .5 • 𝛿 • 𝛽 0 • (𝐼 2ℱ (𝛿 + 𝜐 )/(𝛿 ’ • 𝛿 ’ − 𝛾 2))× ((1 + 𝛿 /𝛾 ) • (𝛾 − 𝜐 )/(𝛾 + 𝜐 ) − (1 + 𝛿 /𝛿 ’ ) • (𝛿 ’ − 𝜐 )/(𝛿 ’ + 𝜐 ));
}

𝛽 1= 𝛽 inc+ 𝛽 coh;
}







上面两个的长度显然比第三个更长。

如果看不到图像中的第3张,请访问 Original Pdf here,从第33至35页。

一个小问题是,在这样的IDE产生之后,是否仍应将这种纯文本编程习惯视为一种好习惯?高级编程语言会陷入这样的偏见,即在帮助程序为多媒体的情况下对纯文本编码感到满意。变体/常量都类似于ASCII,而部分支持Unicode集。在大脑中阅读和使用类似Mathtype的公式是如此精妙,而在我们的IDE中无法下标像我们在教科书中阅读的那样的索引,而像Java这样的编程语言仍然需要括号。

最后一个问题是,是否存在可以运行类似Mathtype的公式或类似Math的代码的IDE或编程语言?

PS:我知道在存在循环的情况下,Mathtype公式中的执行顺序可能会导致效率降低,但这不是问题,作为程序员,我可以将这些多项式手动分离为片段并将其添加到循环中,但是机器可以为您提供便利他们也是。

PS2:尽管Mathematica价格昂贵,但它对于科学界的数学研究人员来说非常有用。我尝试下载并使用它,它的简单性类似于界面和符号系统,确实吸引了我,例如,许多游戏可以用更少的行数来实现,并且助手非常人性化和智能化,就像输入法一样!助手也能够运行代码,这对于这代人和随后的一代人来说是一种绝对的进步,他们不仅可以学习Mathematica语言,还可以学习编程。

首先,Mathematica中的“笔记本”概念是我目前可以找到的终极代码编辑器,它可以在表示算法中使用类似Mathtype的组件,将这种概念引入其他编程语言或它们的纯语言中非常有价值。文本IDE,因为Mathematica有其自身的局限性,例如缺少其他语言中某些同样很重要的现有功能。

我不禁回想起上个世纪在Windows或Linux中使用命令行编程的传统方法,它与当今的纯文本IDE编程没有太大区别。顺便说一下,Mathematica工作台是Eclipse IDE的指定版本,它只是不能以Mathematica“笔记本”的方式进行编码,现在真可惜。

读取他人的代码比编写代码(尤其是算法代码)要困难得多,而且如果没有一种方法可以在富文本IDE中显示类似Mathtype的符号,那么我和其他人将来都很难读取我编写的代码就像Mathematica可以做的一样,运行Symbols是另一回事。

其次,即使在“ Notebook”中,也无法以OneNote方式自由排列组件,宽度为无穷大意味着在OneNote中是真正的无穷大,您可以将任何内容粘贴到距第一列较远的右侧,并用富文本格式填充在OneNote中可以使用水平滚动条进行查看。此功能的明显好处是可以无限制地比较来自同一父类或算法变体的2个或更多代码,我想它对于版本控制也很有用,就像在BeyondCompare中连续滚动水平比较10个文件而没有垂直滚动条时一样每一个都是最后一个,就像1 * N类矩阵,而不是一列。

也许几年后,我提到的那些功能也可以在Mathematica中实现。

我听说过像老话一样的“源代码就是文档”,这还不是现实。

最佳答案

也许不完全是MathType,但是Mathematica及其IDE允许您使用所有这些奇特的数学符号执行符号编程。它的“后继者” Wolfram Language应该也可以做到。

唯一的问题是它相当昂贵。但是有30天的试用版,因此您可以检查是否满足您的需求。

关于java - 有没有可以直接执行MathType公式的编程语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375297/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com