7

Mathematica中,内置符号以大写字母开头。因此,不以大写字母开头用户创建的符号名称是公认的做法。

这种限制应该扩展到语法的其他方面多远?良好做法是否要求大写字母不用于SetDelayedorRuleDelayed表达式中的命名模式(此类名称已本地化)?

例如,我认为大写字母以一种有用的方式扩展了命名空间,并在视觉上区分了小写 L 和 1。它们还允许以教科书的方式命名参数。

如果在未来版本中引入了新符号,命名模式应该取代这些,并且现有代码不应该中断。

如果使用现有名称(例如N和),D则会产生歧义,但我认为使用上下文和前端语法突出显示都可以减轻这种情况。

4

1 回答 1

2

这是我不接受的公认做法!

我指的是包,供个人或第 3 方使用。总的来说,我希望我完成的作品与理想的 (WRI) 质量、外观和感觉尽可能没有区别。这包括我的命令的长描述性名称,以及 WRI 使用的所有大写约定。

当然,我的软件包——目前——远不及 WRI 的质量,但至少我正在尽我所能将它们与标准 MMA 功能集成。这包括使用大写的命令。

在开发过程中,语法突出显示提醒我可能与标准 MMA 函数发生冲突,因此我可以采取适当的措施。当然,我的命令和包可能会与未来的 MMA 版本发生冲突,但没有什么是永远存在的,如果未来的 MMA 命令在名称和功能上与我的一个相似,我将简单地切换到标准功能,而命名的变化很小或没有变化.

除此之外,我发现使用大写字母将包命令与更普通的临时变量区分开来在视觉上更具吸引力。如果您想查看一些视觉上不透明/不吸引人的代码,只需查看任何普通的 Maple 代码。

关于模式变量,我尝试给出有意义的、主要是短的、不带大写字母的模式名称,因此用户可以通过查看 Ctrl/Cmd-K 模板来猜测我的包命令中需要什么样的输入。

于 2011-11-05T15:50:19.747 回答