如何在Mathematica函数中禁用区分大小写?

时间:2014-01-02 19:17:57

标签: wolfram-mathematica case

我想让mathematica对函数第一个大写字母不敏感。例如,它接受“绘图”和“绘图”作为绘图功能。

2 个答案:

答案 0 :(得分:6)

我同意george的观点:“你不想这样做。”通常的做法是使用小写字母启动用户符号,这些字母都标识它们并防止与内置插件发生冲突。不过你可以用几种方法做到这一点。一个只是创建别名,乔治也建议,例如,

plot = Plot;
sin = Sin;

plot[sin[x], {x, 0, 6}]

这具有即使在包中也能工作的优点,因为它不依赖于前端。但是,因为它们是not true aliases,在某些情况下会失败,例如:

evaluate = Evaluate;
Hold[evaluate[2 + 2]]
Hold[evaluate[2 + 2]]

“真实”功能的行为如下:

Hold[Evaluate[2 + 2]]
Hold[4]

要获得完全等效,但只能在前端,您可以使用$PreRead。 (Example。)您需要构建一个规则列表,用大写字符串替换每个小写符号的字符串形式。我将仅对System`上下文中的所有符号执行此操作。

With[{rules = Thread[ToLowerCase[#] -> #] & @ Names["System`*"]},
  $PreRead = # /. rules &
];

现在这两个例子都有效:

plot[sin[x], {x, 0, 6}]

hold[evaluate[2 + 2], 3 + 4]

后者产生:

Hold[4, 3 + 4]

答案 1 :(得分:3)

这不是您问题的直接答案,我强烈建议您不要仅仅为了信件而重新定义 Mathematica 功能。

然而,当你进入编辑 - >时,你有没有看到命令完成时匹配案例的选项? 偏好设置 - > 接口

enter image description here

如果您将其关闭,则可以在笔记本中键入plot,然后从自动完成功能中获得正确的Plot建议。您只需按Enter键并插入正确的命令。