math-as-code数学即代码:数学符号和代码符号有什么异同?


这是一份通过对比数学符号和JavaScript代码来帮助开发者更容易了解数学符号的中文参考。数学符号可以表示不同的意思,这取决于作者,上下文和所学习的领域(线性代数,集合理论,等等)。这份指南也许不会涵盖符号的所有用法。在某些情况,会引用一些真实材料(博客文章,出版物等等)来演示某个符号的实际用法。

HN讨论
数学符号擅长促进形式化操作。这是它的关键特征,没有它,我们将陷入古代数学的水平。这就是它最初是几百年前发明的原因。就是说,我发现文字中的符号经常被滥用,只是普通人类语言的替代品,虽然可以压缩文字,但实际上并不能帮助读者更好地理解所讲的内容,而看上去却像疯了似的。各种各样的字体,样式和大小的乱七八糟的字符和其他标记,其唯一目的似乎是引起眼睛疲劳。

我经常听到完全相反的意见:

  1. -希望编程会更优雅,更富有表现力的人,例如数学符号
  2. -那些希望论文将改为发布Python算法的人,因为数学符号不一致且难以阅读

我不是数学家,所以有很多经验的人可以帮助我确定哪个更合理吗?

数学中的符号约定的一大优势是其简洁。本质上,当前的做法是,我们为每个概念分配一个字形。该符号是为与其他数学家交流的数学家量身定制的。简洁性使您可以非常直接地交流,可视化和思考抽象概念。人类真的很擅长模式匹配。给您的概念一个非常简洁的名称,可以最大程度地提高该工具查找实际有趣模式的能力。
当然,简洁的符号牺牲了可及性。如果您打算与非数学家交流,那么这是一种不好的语言。就是说,数学符号充满了类似于自然语言的历史怪癖和不规范之处。理想情况下,我们希望概念和符号之间是一对一的映射,但是在实践中,某些情况下该映射最终更像是多对多。存在相互竞争的符号,符号重载,并且常常需要重要的上下文才能将符号实际解析为其概念。
从某种意义上说,编程语言是对上述优点和缺点的颠倒。编程语言的语法非常精确,这意味着您无需考虑作者的意图来弄清楚一段语法的作用。
同样,由于编程语言具有可执行性,因此更易于进行修补和探索。键入一些代码并获得预期的结果令人深感满足,当结果与预期不同时,您就会在心智模型中发现错误。用笔和纸很难做到这一点。
也就是说,大多数编程语言及其标准约定都比较冗长和冗长。严重限制了查看战略大图的能力,并且在“符号”上选择“文字”会干扰噪音,从而破坏了我们自然的视觉模式匹配能力。
因此,如果将上述论断作为结论,则可能需要可执行的数学符号。我不确定是否存在这种情况,但是APL系列在这方面确实是一个可靠的实验。

数学符号和程序设计语言有两个不同的用途,我认为它们在设计上都可以很好地工作。数学论文是关于与其他人交流的,因此他们使用对他们正在研究的特定问题有效的最短语言。表示法并非一字不漏,因为这会导致更大的语言范围。