介绍Mathematica编程的教材在中文市场上可能并不多见。国外有很多Mathematica的教材,但是这些教材一大部分是介绍如何把Mathematica当做专门用于计算微分方程的高级计算器,这或许是因为Wolfram将Mathematica定位为一款科学计算软件。只有少数的教材介绍了Mathematica作为一种编程环境应当如何使用。以下是我认为优秀的Mathematica编程教材,它们是: Computer Science with Mathematica (Roman E. Maeder) 它们是非常优秀的Mathematica教材,但是如果您还没有读过也没有关系。这四部教材的内容编排是比较类似的,它们一开始都介绍了如何将Mathematica作为一个符号代数计算器。然后开始介绍在Mathematica中实现“过程式编程”、“函数式编程”以及“逻辑规则编程”。最后提供了一些高级的应用或好玩的范例。Introduction to Programming with Mathematica Mastering Mathematica 以及 Mathematica Guidebook 如果您对以上名词不是很了解,没有关系。它们可以简单地理解为不同的语法格式。上述教材都只是描述了在这些不同的语法格式下怎样写程序,但是没有讨论这些不同的语法格式因为什么而产生,并且适合在哪些场合使用。这就好比中文和英文的差异。我们经常会遇到一个英文单词需要较多的中文来解释,比如经常在句子前面出现的Technically, blah blah...,指的是“从技术方面考虑”。但是反过来,某些中文用英文甚至是无法完全描述的,比如很多古诗的翻译。不同风格的语言适合不同的目的,因此语言风格的介绍应当以其使用目的为主,这样才能使得人们更好地运用它。 到现在为止面世的Mathematica教材,甚至大部分介绍语言的教材,都是先介绍形式再介绍功能,介绍形式也不说它为什么这样设计,即使这样的教材对语言的细节描述的毫无纰漏,它也只能看做浅尝辄止。学习程序设计就好像平地起高楼,我们一边将楼建造的更高,同时一边也在将地基挖的更深。当您感到您在实现某个高级的复杂的功能遇到瓶颈时,您需要立刻意识到这是因为您对您所使用的工具的某些基本的性质和用法尚不甚了解所致。我写这个教程的目的,便是为了披露上述已经是“非常优秀”的教材中没有提及的细节,使您不仅能够更自由地掌控Mathematica,也能更快地了解其他编程语言。 |