大規(guī)模代碼編輯
Wolfram語言最強(qiáng)大的功能之一,就是它可以運(yùn)用于任何規(guī)模的程序——從不到一行代碼,到數(shù)百萬行代碼的規(guī)模。在過去的幾年中,我們一直在努力擴(kuò)展對于大型Wolfram語言程序的支持。使用LSP(語言服務(wù)器協(xié)議),我們?yōu)榇蠖鄶?shù)標(biāo)準(zhǔn)外部IDE提供了一項(xiàng)功能,可以對Wolfram語言進(jìn)行語法修飾和其他自定義信息。
在13.1版本中,我們也增加了一些新功能,可以讓筆記本中的大型代碼編輯變得更加便捷。首先,也是大家廣泛要求的一項(xiàng)是,代碼區(qū)塊的增加縮進(jìn)和減少縮進(jìn)。選擇你想進(jìn)行增加/減少縮進(jìn)的行,按tab或shift+tab就可以對它們進(jìn)行縮進(jìn)
自從6.0版本之后,我們就能用筆記本編輯系統(tǒng)處理.wl文件包(還有.wls底稿文件)。13.1版本中的一個新默認(rèn)功能是對出現(xiàn)在基礎(chǔ)文件中的所有代碼行進(jìn)行編號(是的,我們會考慮到非代碼單元格的存在,正確對齊行號)
舉個例子,現(xiàn)在如果你從Get或相關(guān)函數(shù)中發(fā)現(xiàn)了語法錯誤,你可以立即使用它報(bào)告的行號,從而找到它在基礎(chǔ)文件中的位置。
在筆記本中記錄
在12.2版本中,我們引入了Canvas,作為在筆記本中互動繪畫的便捷界面。在13.1版本中,我們引入了可以在任何單元格頂部切換畫布的功能。
在給定的單元格中,選中該單元格,點(diǎn)擊,這樣你就得到了一張畫布:
現(xiàn)在你可以利用繪畫工具在畫布上創(chuàng)建注解,并覆蓋在原有內(nèi)容上:
如果你要對該單元格求值,覆蓋的內(nèi)容依然存在。(你可以使用Normal,從而避免“畫布包裝“。)
樹狀圖還在繼續(xù)增長
在12.3版本中,我們引入了Tree,作為Wolfram語言中一個新的基礎(chǔ)構(gòu)成。在13.0版本中,我們?yōu)闃錉顖D增加了多種不同風(fēng)格的選擇。在13.1版本中,我們添加了更多風(fēng)格以及許多新的基礎(chǔ)功能。
13.1版本中,對于基礎(chǔ)Tree構(gòu)成的重要更新是,通過將其放入一個關(guān)聯(lián)體系中,能夠?yàn)槊總€分支節(jié)點(diǎn)命名:
所有的樹狀圖函數(shù)現(xiàn)在包含對關(guān)聯(lián)體系的支持:
在樹狀圖的多種用途之中,節(jié)點(diǎn)標(biāo)簽至關(guān)重要。但特別是在更抽象的應(yīng)用中,人們往往想要處理未加標(biāo)簽的樹狀圖。在13.1版本中,UnlabeledTree函數(shù)(幾乎類似UndirectedGraph函數(shù))可以采用一個有標(biāo)簽的樹狀圖,進(jìn)而將幾乎所有能看到的標(biāo)簽刪除。以下是一個標(biāo)準(zhǔn)帶標(biāo)簽的樹狀圖:
以下是類似的未標(biāo)簽版:
在12.3版本中,我們引入了ExpressionTree,將樹狀圖從一般的符號表達(dá)中提取出來。我們計(jì)劃設(shè)計(jì)一種更加廣泛的“特殊樹狀圖”,用于代表不同的特定種類符號表達(dá)。我們從13.1版本開始這一進(jìn)程,比如,通過建立“Dataset樹狀圖“的概念。以下是ExpressionTree將數(shù)據(jù)集轉(zhuǎn)換為樹狀圖的過程:
以下則是TreeExpression將上述過程“反轉(zhuǎn)”,并生成數(shù)據(jù)集:
(記住這一規(guī)則:*Tree函數(shù)將轉(zhuǎn)換為樹狀圖;而Tree*函數(shù)則將樹狀圖轉(zhuǎn)化為其他形式。)
以下是更為復(fù)雜數(shù)據(jù)集樹狀圖的“圖表繪制”:
新的函數(shù)TreeLeafCount可以計(jì)算樹狀圖中樹葉節(jié)點(diǎn)的總數(shù)(幾乎類似LeafCount對于一般符號表達(dá)的作用):
13.1版本中另一個新功能則是RootTree,這一功能通常用于在不檢查每個節(jié)點(diǎn)的情況下去了解一個樹狀圖的結(jié)構(gòu)。以下是一個隨機(jī)樹狀圖:
RootTree可以產(chǎn)生一個“靠近根部”的子圖:
也可以產(chǎn)生“遠(yuǎn)離樹葉”的子樹狀圖,這種情況會下降至樹狀圖第-2級的元素:
在某些情況下,樹狀圖的風(fēng)格就是圖表的風(fēng)格——盡管由于樹狀圖的層級本質(zhì)會產(chǎn)生一些明顯的不同。默認(rèn)情況下,在特定樹狀圖元素中插入的選項(xiàng)只會影響這個樹狀圖的元素:
但可以給定規(guī)則,規(guī)定子樹狀圖中,該元素之下的指定元素是如何收到影響的:
在13.1版本中,現(xiàn)在可以從細(xì)節(jié)上控制樹狀圖中節(jié)點(diǎn)和邊界的風(fēng)格。以下是一個例子,為母樹狀圖節(jié)點(diǎn)的邊界提供了樣式:
TreeElementStyle之類的選項(xiàng)從元素的位置上決定了元素的風(fēng)格。但是另一方面,TreeElementStyleFunction會通過將函數(shù)應(yīng)用于每個節(jié)點(diǎn)上的數(shù)據(jù),從而決定元素的風(fēng)格。
對于每一個節(jié)點(diǎn),這一函數(shù)同時(shí)利用了元素的數(shù)據(jù)和位置信息:
與圖表函數(shù)VertexShapeFunction類似,TreeElementShapeFunction提供的是一般性機(jī)制,用于指定樹狀圖的節(jié)點(diǎn)應(yīng)該如何被渲染。TreeElementShapeFunction這一設(shè)置能讓每一個節(jié)點(diǎn)都顯示為一個圈:
-
Wolfram
+關(guān)注
關(guān)注
0文章
16瀏覽量
7706 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4277瀏覽量
62323 -
代碼
+關(guān)注
關(guān)注
30文章
4722瀏覽量
68229
原文標(biāo)題:Wolfram語言與Mathematica13.1版本上線(6)
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論