2013-10-20 42 views
1

我在數學遇到這樣表達:數學語法與&符號

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

,但我不能似乎明白了什麼呢在這個表達這個& /符號的意思。

其次:可以這樣更「人性化」的方式寫的?

回答

3

&表示一個pure function(這是一種像的λ)。是的,它可以用更友好的方式編寫。作爲鏈接文檔表示:

body& 

相當於

Function[x,body] 

其中x是參數。

/@是一個map(它也可以用友好的方式編寫,正如您從文檔中看到的一樣)。

1

爲了補充arshajii的回答是:

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

返回:

{3/2,3,9/2}

長於:

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

這是l onger比:

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