新13.1:超越Listability:引入线程
去年我们发布了13.0版本beplay体育官网下载app。这是更新listability从那时起,包括最新的特性在13.1。
超越Listability:引入线程
从一开始的Mathematica和beplay体育官网下载app我们有listability的概念:如果你添加两个列表,例如,相应的元素将被添加:
![]()
& # 10005
|
这是一个非常方便的机制,通常也正是你想要的。35年来,我们还没有真正考虑扩展它。但是如果我们看写入的代码,它经常发生,有部分基本上实现listability非常相似的东西,但更通用。而在版本13.1我们有一个新的符号构造,螺纹,有效地使您可以轻松地总结listability。
考虑:
![]()
& # 10005
|
这使用普通listability,有效地计算:
![]()
& # 10005
|
但是如果你想要“沿着水平”和线程{x, y}为最低的部分的第一个列表?好吧,现在你可以使用螺纹这样做:
![]()
& # 10005
|
就其本身而言,螺纹只是一个象征性的包装:
![]()
& # 10005
|
但当它出现在一个函数+——有属性能列在单子上的后,它指定listability应该应用指定的内部螺纹“线程”的最低水平。
这是另一个例子。创建一个列表:
![]()
& # 10005
|
然后我们每个元素乘以该如何{1}吗?我们可以这样做:
![]()
& # 10005
|
但是现在我们有螺纹,所以我们可以说:
![]()
& # 10005
|
![]()
& # 10005
|
您可以使用螺纹和普通listability一起:
![]()
& # 10005
|
你可以有几个螺纹年代在一起:
![]()
& # 10005
|
![]()
& # 10005
|
默认情况下,螺纹总是线程到最低一级的名单:
![]()
& # 10005
|
![]()
& # 10005
|
这是一个“真实的”使用的例子螺纹像这样。一个3 d彩色图像中的数据由一系列等级3的三元组的RGB值:
![]()
& # 10005
|
这增加每个RGB三{0,1,2}:
![]()
& # 10005
|
大部分时间你想用普通listability运行在顶层的一个列表,或者你想使用默认的形式螺纹运作的最低水平的一个列表。但螺纹有一个更一般的形式,可以显式地说你想要在什么水平。
这是默认情况下:
![]()
& # 10005
|
这是1级,就像普通的listability:
![]()
& # 10005
|
这是线程分为二级:
![]()
& # 10005
|
螺纹提供了一个非常方便的方式去做各种各样的array-combining操作。有额外的复杂性时被“螺纹”本身的对象有多个水平。默认的在这种情况下是对齐的最低水平的螺纹在最低水平的东西,它被线程:
![]()
& # 10005
|
现在是“普通listability”行为:
![]()
& # 10005
|
数组是我们这里看,默认行为是相当于:
![]()
& # 10005
|
有时是清晰的形式写出来
![]()
& # 10005
|
说,第一级的数组内的螺纹是与外部的二级数组。一般来说,默认情况下相当于1→1,指定级别的数组内的底部螺纹应该与数组的底部标高。
评论