Mathematica语法与&符号

时间:2013-10-20 16:32:33

标签: wolfram-mathematica

我在Mathematica中遇到过这个表达:

oneStep[plus[e1_ , e2_]] := Flatten[{With[{a=e1,b=#},plus[a,b]]&/@oneStep[e2],
                                  With[{a=#,b=e2},plus[a,b]]&/@oneStep[e1]}];

但我似乎无法理解此& /符号在此表达式中的含义。

其次:这可以用更“人性化”的方式写出来吗?

2 个答案:

答案 0 :(得分:3)

&表示pure function(有点像lambda)。是的,它可以用更友好的方式编写。如链接文档所示:

body&

相当于

Function[x,body]

其中x是参数。

/@map(也可以用更友好的方式编写,正如您从文档中看到的那样)。

答案 1 :(得分:1)

补充arshajii的答案:

veryLongFunctionName[n_] := n + n/2;
Map[veryLongFunctionName, {1, 2, 3}]

返回:

  

{3 / 2,3,9 / 2}

超过:

Map[# + #/2 &, {1, 2, 3}]

长于:

# + #/2 & /@ {1, 2, 3}