math-as-code數學即程式碼:數學符號和程式碼符號有什麼異同?

banq發表於2020-06-13

這是一份通過對比數學符號和JavaScript程式碼來幫助開發者更容易瞭解數學符號的中文參考。數學符號可以表示不同的意思,這取決於作者,上下文和所學習的領域(線性代數,集合理論,等等)。這份指南也許不會涵蓋符號的所有用法。在某些情況,會引用一些真實材料(部落格文章,出版物等等)來演示某個符號的實際用法。

HN討論

數學符號擅長促進形式化操作。這是它的關鍵特徵,沒有它,我們將陷入古代數學的水平。這就是它最初是幾百年前發明的原因。就是說,我發現文字中的符號經常被濫用,只是普通人類語言的替代品,雖然可以壓縮文字,但實際上並不能幫助讀者更好地理解所講的內容,而看上去卻像瘋了似的。各種各樣的字型,樣式和大小的亂七八糟的字元和其他標記,其唯一目的似乎是引起眼睛疲勞。

我經常聽到完全相反的意見:

  1. -希望程式設計會更優雅,更富有表現力的人,例如數學符號
  2. -那些希望論文將改為釋出Python演算法的人,因為數學符號不一致且難以閱讀

我不是數學家,所以有很多經驗的人可以幫助我確定哪個更合理嗎?

數學中的符號約定的一大優勢是其簡潔。本質上,當前的做法是,我們為每個概念分配一個字形。該符號是為與其他數學家交流的數學家量身定製的。簡潔性使您可以非常直接地交流,視覺化和思考抽象概念。人類真的很擅長模式匹配。給您的概念一個非常簡潔的名稱,可以最大程度地提高該工具查詢實際有趣模式的能力。

當然,簡潔的符號犧牲了可及性。如果您打算與非數學家交流,那麼這是一種不好的語言。就是說,數學符號充滿了類似於自然語言的歷史怪癖和不規範之處。理想情況下,我們希望概念和符號之間是一對一的對映,但是在實踐中,某些情況下該對映最終更像是多對多。存在相互競爭的符號,符號過載,並且常常需要重要的上下文才能將符號實際解析為其概念。

從某種意義上說,程式語言是對上述優點和缺點的顛倒。程式語言的語法非常精確,這意味著您無需考慮作者的意圖來弄清楚一段語法的作用。

同樣,由於程式語言具有可執行性,因此更易於進行修補和探索。鍵入一些程式碼並獲得預期的結果令人深感滿足,當結果與預期不同時,您就會在心智模型中發現錯誤。用筆和紙很難做到這一點。

也就是說,大多數程式語言及其標準約定都比較冗長和冗長。嚴重限制了檢視戰略大圖的能力,並且在“符號”上選擇“文字”會干擾噪音,從而破壞了我們自然的視覺模式匹配能力。

因此,如果將上述論斷作為結論,則可能需要可執行的數學符號。我不確定是否存在這種情況,但是APL系列在這方面確實是一個可靠的實驗。

數學符號和程式設計語言有兩個不同的用途,我認為它們在設計上都可以很好地工作。數學論文是關於與其他人交流的,因此他們使用對他們正在研究的特定問題有效的最短語言。表示法並非一字不漏,因為這會導致更大的語言範圍。

 

相關文章