距離Mathematica及現(xiàn)在的Wolfram語(yǔ)言的初次發(fā)布已經(jīng)34年了。這些年來(lái),我們一直在積極努力地繼續(xù)建設(shè),增加越來(lái)越多的功能,并穩(wěn)步擴(kuò)展計(jì)算范式的領(lǐng)域。
最近幾年,我們已經(jīng)建立起了一種節(jié)奏,大約每年可以交付兩次我們開(kāi)發(fā)工作的成果。在2021年12月13日,我們發(fā)布了13.0版本。而現(xiàn)在,只在大約6個(gè)月之后,我們就發(fā)布了13.1版本。如往常一樣,盡管這個(gè)版本只是一個(gè)“.1”,但它依然有很多新的(以及升級(jí)的)功能。其中有一些功能,我們已經(jīng)研究了許多年,現(xiàn)在終于可以享用其成果了。
對(duì)我來(lái)說(shuō),看到每個(gè)新版本都能傳達(dá)出我們想要的內(nèi)容總是讓人激動(dòng)的。在13.1版本中,我們有90個(gè)完整的新功能,同時(shí)有203個(gè)大量更新的現(xiàn)有功能。除了特定功能中出現(xiàn)的內(nèi)容以外,13.1版本還包括用戶(hù)界面和編譯器等方面的重要新功能。
現(xiàn)在的Wolfram語(yǔ)言包含了廣泛的功能。但是,它的巨大能量并不僅僅來(lái)自于它所包含的內(nèi)容,也來(lái)自于其包含的所有內(nèi)容是如何連貫地結(jié)合在一起的。近36年來(lái),我一直將維持這種連貫性作為我自己的個(gè)人責(zé)任。這項(xiàng)工作既需要高度的注意力,也需要大量深層的腦力工作。但是在我日復(fù)一日使用著Wolfram語(yǔ)言時(shí),我驕傲于所取得的成果。
過(guò)去四年中,我一直在分享“幕后工作”,展示我們是如何取得這一成果的——通過(guò)直播Wolfram語(yǔ)言設(shè)計(jì)評(píng)審會(huì)。這是前所未有的開(kāi)放程度——同時(shí)與社區(qū)進(jìn)行互動(dòng)。在設(shè)計(jì)13.1版本時(shí),我們進(jìn)行了90場(chǎng)直播,持續(xù)時(shí)間超過(guò)96小時(shí)。在開(kāi)放我們的流程時(shí),我們不僅向公眾展示了為13.1版本所構(gòu)建的內(nèi)容,而且還說(shuō)明了構(gòu)建它的原因以及是如何做出有關(guān)決策的。
But,OK, so what finally is in Version 13.1? Let’s talk about somehighlights….
那么,在13.1的最終版本中到底有什么新內(nèi)容?接下來(lái)我們講講一些重點(diǎn)……
不止可列表功能:Threaded介紹
從Mathematica和Wolfram語(yǔ)言的開(kāi)始,我們就有了可列表功能的概念:例如,如果添加兩個(gè)列表,它們對(duì)應(yīng)的元素將被添加:
![]() |
這一機(jī)制非常方便,基本上做到了你想要它做的事。而且35年來(lái),我們都沒(méi)有想過(guò)要擴(kuò)展這個(gè)功能。但如果仔細(xì)看看寫(xiě)出來(lái)的代碼,我們會(huì)發(fā)現(xiàn),有一些部分基本上實(shí)現(xiàn)了類(lèi)似可列表的功能,但稍微更加通用一些。在13.1版本中,我們有新的符號(hào)結(jié)構(gòu):Threaded,可以讓您輕松、有效地使用可列表功能。
試想:
![]() |
這個(gè)列表使用了普通的可列表功能,有效計(jì)算為:
![]() |
但是,如果你想“降低一個(gè)層級(jí)”并將{x,y}插入第一個(gè)列表的最底部怎么辦?這種情況下可以使用Threaded來(lái)執(zhí)行該操作:
![]() |
Threaded本身只是一個(gè)符號(hào)包裝:
![]() |
但是,只要它出現(xiàn)在一個(gè)具有Listable屬性的函數(shù)里——比如Plus,即說(shuō)明可列表的屬性應(yīng)該應(yīng)用在Threaded函數(shù)內(nèi)指定的內(nèi)容在最低層級(jí)“線(xiàn)程化”之后。
下面是另一個(gè)例子。先創(chuàng)建一個(gè)列表:
![]() |
那么,我們?nèi)绾螌⒚恳粋€(gè)元素乘以{1,–1}?我們可以這樣做:
![]() |
但現(xiàn)在,我們有了Threaded函數(shù),所以可以?xún)H表示為:
![]() |
你可以將Threaded作為任何可列出函數(shù)的參數(shù),而不僅僅用于Plus和Times:
![]() |
你可以將Threaded和普通的可列表屬性一起使用:
![]() |
你也可以同時(shí)使用多個(gè)Threaded:
![]() |
另外,Threaded得名于另一個(gè)函數(shù)Thread,這一函數(shù)明確地執(zhí)行“線(xiàn)程”功能,比如:
![]() |
默認(rèn)情況下,Threaded會(huì)一直插在列表的最低層級(jí):
![]() |
![]() |
下面是用如上所述的方法使用Threaded的“現(xiàn)實(shí)”案例。3D彩色圖像中的數(shù)據(jù)由RGB值三元組的rank-3數(shù)組組成:
![]() |
這將每一個(gè)RGB三元組乘以{0,1,2}:
![]() |
大多數(shù)時(shí)候,你或許想使用普通的可列表屬性,在列表的最高層級(jí)進(jìn)行運(yùn)算;或者你只想使用Threaded的默認(rèn)格式,在列表的最低層級(jí)進(jìn)行運(yùn)算。但Threaded有更加普遍的格式,使用這種格式,你可以明確想要在哪個(gè)層級(jí)運(yùn)算。
下面是默認(rèn)案例:
![]() |
下面是第一層級(jí),就像普通的可列表屬性功能:
![]() |
以下是插入第二層級(jí):
![]() |
Threaded提供了非常便捷的方法,可以進(jìn)行所有種類(lèi)的數(shù)組組合操作。如果目標(biāo)對(duì)象本身的“插入”有多重層級(jí),那么就會(huì)出現(xiàn)更加復(fù)雜的情況。這種情況下,默認(rèn)的操作就是將插入元素的最低層級(jí)與被插入元素的最低層級(jí)對(duì)齊
![]() |
下面是“普通可列表屬性”的表現(xiàn):
![]() |
對(duì)于我們?cè)诖颂幉榭吹臄?shù)組,默認(rèn)行為等同于:
![]() |
有時(shí),把數(shù)組寫(xiě)到外面可能更加清晰,比如以下格式:
![]() |
這表明,Threaded中的第一級(jí)數(shù)組,與數(shù)組外的第二級(jí)數(shù)對(duì)齊。通常來(lái)講,默認(rèn)情況等同于–1→ –1,即表明在Threaded中,數(shù)組內(nèi)的最低層級(jí)應(yīng)該與數(shù)組外的最低層級(jí)對(duì)齊。
審核編輯:劉清
-
Wolfram
+關(guān)注
關(guān)注
0文章
16瀏覽量
7810 -
編譯器
+關(guān)注
關(guān)注
1文章
1662瀏覽量
50228
原文標(biāo)題:Wolfram語(yǔ)言與Mathematica13.1版本上線(xiàn)(1)
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
《仿盒馬》app開(kāi)發(fā)技術(shù)分享-- 分類(lèi)右側(cè)商品列表(18)
《仿盒馬》app開(kāi)發(fā)技術(shù)分享-- 分類(lèi)左側(cè)列表(17)
HarmonyOS NEXT應(yīng)用元服務(wù)布局優(yōu)化長(zhǎng)列表使用懶加載與組件復(fù)用
不止是測(cè)光譜,地物光譜儀在農(nóng)業(yè)和環(huán)保中還有這些用處

創(chuàng)建列表 (List) 介紹,一起來(lái)看看是做什么的
測(cè)溫電能計(jì)量表 無(wú)線(xiàn)通訊物聯(lián)網(wǎng)電能表功能介紹

C3語(yǔ)音地臺(tái)ZXAIEC43 使用說(shuō)明手冊(cè) 功能支持列表

指針式萬(wàn)用表功能介紹
Triton編譯器功能介紹 Triton編譯器使用教程
Java 23功能介紹

智能家居之旅(14):安信可IoT Blufi配網(wǎng)工具新功能介紹

評(píng)論