Wolfram mathematica 这个数学中锐符号的意义是分裂函数

Wolfram mathematica 这个数学中锐符号的意义是分裂函数,wolfram-mathematica,pure-function,Wolfram Mathematica,Pure Function,我在理解Mathematica中的尖锐符号时遇到一些问题。我把#&理解为变量的占位符。但是在下面的代码中如何理解#1和#2 x = {0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1}; Split[x, #1 =!= 0 && #2 =!= 0 &] 这里的#1和#2是什么?这些行的输出是 {{0}, {1, 1, 1}, {0}, {0}, {1, 1, 1}, {0}, {0}, {1}} 该版本的格式为Split[list,test],其中

我在理解Mathematica中的尖锐符号时遇到一些问题。我把
#&
理解为变量的占位符。但是在下面的代码中如何理解
#1
#2

x = {0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1};
Split[x, #1 =!= 0 && #2 =!= 0 &]
这里的
#1
#2
是什么?这些行的输出是

{{0}, {1, 1, 1}, {0}, {0}, {1, 1, 1}, {0}, {0}, {1}}
该版本的格式为
Split[list,test]
,其中
test
是一个接受两个变量的函数。所以

#1 =!= 0 && #2 =!= 0 &
是双变量纯函数的缩写,其中
#1
#2
是变量名


通常,
Split
将获取一个列表,并返回被划分为连续运行的“相同”元素的相同列表。因此,如果您的列表是
list={0,0,2,2,3,4,4,5,5,5,7}
,那么
Split[list]
将产生

{{0,0}, {2,2}, {3}, {4,4}, {5,5,5}, {7}}
但也许你想定义两件事物“相同”的不同含义。这就是通用
Split[list,test]
函数的作用。这里的
test
函数是一个函数,它接受两个参数,如果它们相同,则返回true;
test
功能用于测试两件事是否相同。例如,您提供的测试函数

#1 =!= 0 && #2 =!= 0 &
如果两个元素都非零,则返回true。因此,如果元素是零的运行,或者如果元素是非零的运行,那么您的
Split
函数会对元素进行分组

例如,如果两个整数具有相同的奇偶校验(偶数或奇数),则表示它们是相同的。那么你的分割函数就是

Split[list, Mod[#1,2] == Mod[#2,2]]
对于我定义的列表,它将返回

{{0,0,2,2}, {3}, {4,4}, {5,5,5,7}}
狭缝是一个术语