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

标签 wolfram-mathematica case

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

最佳答案

我同意 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]

关于wolfram-mathematica - 如何在 Mathematica 函数中禁用区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890154/

相关文章:

MySQL SELECT CASE WHEN something THEN 返回 null

python - 拟合曲线: which model to describe distribution in weighted knowledge graphs

wolfram-mathematica - 需要帮助避免条件或模式测试中的列表

wolfram-mathematica - 将绘图选项保存在列表中

Mysql查询带范围的大小写,带货币的大小写

java - 如何将 "case"放入循环中

haskell - 在 haskell 中,结合 "case"和 ">>="

mysql - 根据列值组合来自不同表的mysql语句

r - R 中错误的矩阵求逆结果

wolfram-mathematica - 如何运行调色板的初始化代码?