Syntax 数学符号与符号

Syntax 数学符号与符号,syntax,wolfram-mathematica,symbols,Syntax,Wolfram Mathematica,Symbols,我对Mathematica比较陌生,虽然我熟悉很多编码约定,但我不知道Mathematica在命令中使用@、@、#、%和&等符号的方式。具体地说,我正在使用GatherBy对包含pairscases列表中元素I的pairs进行分组,以寻求帮助 我一直在使用e=GatherBy[cases,MemberQ[#,I]&]在我的函数范围外测试时工作正常,但当放入函数模块时,它不是搜索案例,而是搜索我在函数中声明的其他列表 我认为这是因为我误用了符号(也可能是&符号) 请帮助我指出我做错了什么和/或一些

我对Mathematica比较陌生,虽然我熟悉很多编码约定,但我不知道Mathematica在命令中使用@、@、#、%和&等符号的方式。具体地说,我正在使用
GatherBy
对包含pairs
cases
列表中元素
I
的pairs进行分组,以寻求帮助

我一直在使用
e=GatherBy[cases,MemberQ[#,I]&]在我的函数范围外测试时工作正常,但当放入函数模块时,它不是搜索
案例
,而是搜索我在函数中声明的其他列表

我认为这是因为我误用了
符号(也可能是
&
符号)

请帮助我指出我做错了什么和/或一些关于所有这些符号及其在Mathematica中的用途的文档

提前非常感谢你们为我提供的一切帮助

干杯

编辑

这里有更多关于我的函数的解释

distill[mono_] := Module[{cases, e, f, g, h, check, res},


cases = FactorList[mono];



cases = Cases[cases, {P[_Integer, _Integer], _}];


(*Flatten the list*)

cases = Flatten[cases];

(*Remove the extra 1s *)
cases = Cases[cases, P[_Integer, _Integer]];


cases = cases //. P[r_, q_] :> {r, q};


(*Create equivalance list on the points*)
(映射值是一个全局数组,包含成对中所有可能的值)


对于[i=mappedVals[[1]],我在离这里不远的地方找到了两个有用的资源:和。要获得关于这个问题的帮助,您可能需要将问题归结为更简单的内容,因为没有人知道
mappedVals
中有什么内容,并且无法运行您的代码。请使用选择然后补码,而不是gatherby
For[i = mappedVals[[1]], i <= Length[mappedVals]/2, i++,

Print[i];

e = GatherBy[cases, MemberQ[#, i] &];
If[Position[e[[1]], i] == {}, f = Flatten[e[[2]]], 
 f = Flatten[e[[1]]]];
If[Position[e[[1]], i] == {}, check = 0, check = 1];

g = Union[f];

If[check == 0, h = e[[1]], h = e[[2]] ];

cases = Append[h, g];
];


cases

];