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