Mathematica内置符号以大写字母开头。因此,不接受以大写字母开始用户创建的符号名称的惯例。命名图案的大写字母
这个限制应该延伸到语法的其他方面多远?良好做法是否要求大写字母不用于SetDelayed
或RuleDelayed
表达式(其中这些名称已本地化)中的命名模式?
例如,我认为资本以一种有用的方式扩展命名空间,并在视觉上区分小写的L和1。他们还允许以教科书的方式命名参数。
如果未来版本中引入了新的符号,则命名的模式应该取代这些符号,并且现有的代码不应该中断。
如果使用现有名称(如N
和D
),则con是不明确的,但我觉得使用上下文和FrontEnd语法突出显示可以缓解这种情况。
+1但是1想想1owercase如果你的名字足够描述,L很容易与1区分。此外,命名空间的扩展使用应小心考虑:命名一个symbo1 myHome和另一个MyHome是一个c1assica1 bug炖菜配方... –
@belisarius由于我对简洁编码有爱好,大多数模式名称都是单个字符,因此'l'和'1'非常相似。同样,我怀疑我会混淆'f [A_,a_]:= ...'中的符号。全球使用我同意你的观点,并且我使我的全球名称更加冗长,但在这个特定情况下,我想知道我是否可以改变我的练习。 –
反思“大部分”并不准确,但很多都是单个字母,尤其是简短的封装好的替换规则。见[这个答案](http://stackoverflow.com/questions/5644801/tweaking-style-attributes-of-existing-graphics-objects-in-mathematica/5645482#5645482);我想在该代码中将'l:Line [__]'更改为'L_Line'。 –