Mathematica怎樣才能提高可讀性?
Mathematica對於公式的可讀性好到爆表所以不提這個。
但是作為一種函數式語言,怎麼解決函數嵌套函數的再嵌套函數再嵌套函數……的可讀性?難道是我的代碼風格不對嗎?對於Python、C這種傳統語言出身的的人而言看這種代碼簡直渾身難受。一個例子:這一串括弧我真是醉了。
Mathematica 完全可以寫的優雅,很多情況下可讀性遠高於 python, C。
Mathematica 是個連 詞法、語法、語義,甚至部分 IDE 都可以自行定製的框架,原則上你完全可以把語法改成幾乎任何你想要的樣子。建議看下官方文檔的一下條目:MakeBoxes, MakeExpression, TemplateBox。再學下 Notation Package,KeyEventTranslations(非文檔化)連輸入方式都可以定製了。典型的應用比如張量指標。就你這個例子而言,還不需要這些黑魔法,搞清楚 grid 怎麼輸入就行了。至於嵌套函數,後面寫一串 // 就行了,可讀性至少比 C 里一堆 ((),((,((,))))) 強吧。
C, python 這種一維純 text 語言才真是上個世紀的。
背景相關:精通彙編,C,Mathematica
---------------------------------------
謝邀。
首先得承認Mathematica可讀性就是差,沒辦法。自己寫的久一點的code一眼掃過去自己一時半會可能也不認識。
其次,不要非把code寫成一句。可以用一些變數,然後把複雜的一句拆成幾句來寫。最後,牆裂推薦一個神器:Home 這是一個插件,可以配合JetBrains任一款IDE使用,比如IntelliJ IDEA, 非常好用,特別適合稍微大一點的Mathematica項目。JetBrains旗下的IDE學生可以免費使用,只要有edu郵箱(edu.cn也行)就可以。mmtc被你用成這樣才是讓人醉了。
既然知道mmtc是函數化的編程,那麼為什麼不用自定義函數呢;
比如column下的數據完全可以寫為函數
dataColumn[x_]:=Column[此處省略]//TableForm;
Point下數據生成函數寫為dataPoint[x_]:={你自己需要輸入的數據};另外,二維point是不是可以考慮用ListPlot代替=============================================
你的程序是不是就可以成:dataColumn[x_]:=Column[此處省略]//TableForm;dataPoint[x_]:={你自己需要輸入的數據};Manipulate[dataColumn[x],Graphics[dataPoint[x],other options],{x}]或者
Manipulate[dataColumn[x],ListPlot[dataPoint[x],other options],{x}]
=============================================這比一個manipulate佔一頁可讀性好很多吧。
這個方式才跟函數化語言貼點兒邊兒,醒醒吧,別醉了
===========================================================
回復給 @St Jason (希望沒@ 錯) 示例:
上面這個很基礎,應該都能看懂,由於計算中一些基礎的表達式需要以多樣的方式(「積分求導改變係數的多項式三角函數複變函數等各種整理」 和 「賦值」)重複使用,因此盡量保留一個不會變動的原始形式,以免與賦值狀態衝突。
如果你喜歡使用x=C這類賦值表達式,函數是個很好的辦法避免使用衝突,如2.2 和2.3。
另一個方式就是依舊使用變數定義,後用 EQx=EQ1 /.{x-&>C}的方式,不改變原變數的情況下得到相應數值EQx。多說點兒,說說畫圖和數據:


如果用map函數也許會更簡單,但這裡說個作弊的方案


相比之下,下面的是不是就弱爆了

我覺得首先得知道每個函數的意思,然後從中間看,最外圍是最後的過程
推薦閱讀:
※為什麼程序語言要設計成使用這麼多shift?
※為什麼說 Smalltalk 超前了 20 年?
※Mathematica 這門語言怎麼樣?
※UE4 C++編程學習路線?
※2025年的編程語言將會是怎樣的?
TAG:編程語言 | WolframMathematica | 代碼風格 |

