对于学校和考试来说,时间非常宝贵。复制表达式并粘贴到第三方计算器中太耗时了。更不用说如果你发现自己犯了一个错误,就必须调整所有依赖于该结果的表达式。
有什么办法可以让我把事情变成这样:
\mathdefine{a}[5]
\mathname{a} = \mathprint{a}
\mathcalc{4*a}
\mathexpression{} = \mathprint{}
\mathfuncadd{f, x}[a*x+10]
\mathfuncname{f, x} = \mathfuncdef{f}
\mathfuncname{f, 3} = \mathfunccalc{f, 3}
\mathfuncname{f, 3} = \mathfuncexpand{f, 3} = \mathfunccalc{f, 3}
它应该能够快速输入,并且最好将变量范围限定在当前部分,如果在子部分中,它将从其父部分继承。
有类似的东西吗?一个包或者一个带有库的脚本语言,比如 Lua 或 Python?
答案1
这显示了最后一种情况下略有不同的扩展步骤(我只有未替换的情况,或完全评估的术语)如果需要,可以添加其他变体
\documentclass{article}
\def\eval#1{{\def\var##1##2{##2}\def\*{*}\the\numexpr#1\relax}}
\def\sym#1{{\def\var##1##2{##1}\def\*{\cdot}#1}}
\begin{document}
\def\a{\var{a}{5}}
$\sym{\a} = \eval{\a}$
\def\expr{4\*\a}
$\sym{\expr} =\eval{\expr}$
\def\f#1{\a\*#1+10}
$f(x)=\sym{\f{x}}$
$f(3) = \eval{\f{3}}$
$f(3) = \sym{\f{3}} = \eval{\f{3}}$
\end{document}