如何在Mathematica中本地化语法错误​​?

时间:2011-01-13 00:17:36

标签: wolfram-mathematica

是否存在本地化语法错误​​的技巧?编辑现有代码时偶尔会遇到这种情况。这是一个最新的例子,您是否看到了找到错误的有效方法? (我已经发现错误,但效率不高)

http://yaroslavvb.com/upload/save/syntax-error.nb

1 个答案:

答案 0 :(得分:3)

可能是,我错过了一些东西,但在你的例子中它很容易:一旦我将你的代码放入笔记本并尝试运行,就会出现通常的橙色括号,当你展开消息时,它会非常清楚地说明问题出现在vertexFormula函数的空括号中。根据我的经验,大多数时候,橙色框提供了足够的提示。

我通过Workbench中的代码突出显示我每天使用的另一种好方法。它立即突出显示语法错误,此外,您还可以为单个包和多个包提供非常强大的基于Eclipse的导航。通过从交互式FrontEnd开发转到Workbench可能会失去一些灵活性,但我发现相反(或者可能是我的企业Java背景的复仇):你仍然可以将你的笔记本放在Workbench中项目,您进行初始开发,但随后他们将附加到项目和您已开发和使用的许多软件包。从笔记本电脑到软件包的过渡变得更加容易,因为您可以在将代码转移到软件包后继续使用该笔记本,而且您甚至不必担心加载软件包,只要您只执行一次即可在一个项目内。总的来说,一旦你的项目超过一些临界质量(我想说,也许大约1000个地方,但是ymmv),我发现基于Workbench的开发更有趣。但是,完整的新的和独立的功能块我仍然更喜欢在FrontEnd完全原型。

如果您在代码中遵循某些特定的编码标准,或者使用代码,那么您可以开发一些简单的部分解析器,至少将代码分解为完整的块(函数保护,Module-s等, CompoundExpressions)。然后,您可以使用ToExpression(例如,将其映射到部分解析器返回的字符串代码块列表),以查看哪一段代码存在问题(它将返回$ Failed)。但是如果你使用Workbench,这是完全没必要的。