问题描述
在重新阅读关闭/打开的主题列表之后,我仍然不确定这个问题是否最好发布到此站点,因此请事先道歉。
概述:
我正在研究一个混合了几种编程语言的项目,我们正在尝试确定用于特别调用一种命令的重要考虑因素。
为了明确起见,我将列出特定的语言;但是,我认为这些原则应该是通用的,因此对这些特定语言的熟悉并不是真正必要的。
特定上下文
具体来说,我们使用的是:Maxima,KaTeX,Markdown和HTML)。在构建原型时,我们使用了以下(我认为是标准的)约定:
- KaTeX以
$ $
或$$ $$
分隔; - 由
< > </ >
对分隔的HTML; - Markdown可以在人体的任何地方工作,除了在KaTeX或Maxima环境中;
我们在此设计阶段使用的唯一非标准约定是使用\comp{<Maxima commands>}
调用Maxima。此命令可在所有其他环境中使用(需要)。
现在我们准备开始使用该平台,很明显,此调用Maxima的临时命令对我们的用户来说很麻烦。绝大多数用例仅涉及调用单个变量或函数,例如
因此,我们有$ \ eval {function-name()}(\ eval {variable-name})$
与实际使用Maxima进行计算相反,例如
在这里,很显然$ \ eval {a} + \ eval {b} = \ eval {a + b} $
(其中\eval{a+b}
将返回实际值,由Maxima计算得出)。
因此,我们的用户希望使用无分隔符的命令选项来调用单个变量或函数,例如 eg \@<variable-name-in-Maxima>
和\@<function-name>(<argument>)
(其中@
是一些其他语言未使用的保留字符),同时对于(实际上不那么频繁)实际需要使用Maxima进行计算的情况(使用频率要低得多)也有定界的替代方法;也许像\@{a+b}
之类的东西。
但是,我们普遍认为这不是最佳做法,即使我们无法预见任何特定问题。
“研究” /比较:
实际上,TeX中的x^2
(在任何计算器上)或knuth的a \over b
(例如在LaTeX中以\frac12
解析为\frac{1}{2}
。
IIRC knuth的观点是,这种无定界符号更具语义性(因此,他认为更可取),并且由于可以添加定界符 ,因此在需要时可以避免歧义: eg x^{22}
,{a+b}\over{c+d}
和\frac{12}{3}
。
正确的问题:
任何人都可以指出或解释与双重解决方案相关的实际缺点/风险:
-
\@<var>
,\@<function>(<arg>)
和 -
\@[<extended expression>]
,
(其中@
是保留(和转义)字符),可用于呼叫一种语言,而不是仅使用分隔命令?
关于如何实现上述解决方案的易用性和更多语义代码的任何其他建议,同时又保持代码的明确性,将是非常欢迎和赞赏的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)