2 つの引数を取り、それらの商を返す純粋な関数を定義する必要があります。除数が の場合は0
を返し0
ます。
名前付き関数があれば、私はそうします
div[_, 0] := 0
div[x_, y_] := x / y
純粋な関数の引数に対して同じ種類のパターン マッチングを行う方法は#1 / #2 &
?
2 つの引数を取り、それらの商を返す純粋な関数を定義する必要があります。除数が の場合は0
を返し0
ます。
名前付き関数があれば、私はそうします
div[_, 0] := 0
div[x_, y_] := x / y
純粋な関数の引数に対して同じ種類のパターン マッチングを行う方法は#1 / #2 &
?
次のようなものを試してください
If[#2 == 0, 0, #1/#2] &
あなたの純粋な機能のために。
Switch
たとえば、次のように便利です。
Switch[ # ,
_String , StringLength[#] ,
_List , Length[#] ,
__ , Null ] & /@ { "abc", {1, 2, 3, 4}, Pi}
{3, 4, ヌル}
Replace
との組み合わせを使用してCondition
、純粋な関数の引数で同様のパターン マッチングを実現できます。
Replace[_, {_ /; #2 == 0 -> 0, _ :> #1/#2}] &
例えば
Replace[_, {_ /; #2 == 0 -> 0, _ :> #1/#2}] &[a, 2]
a/2
と
Replace[_, {_ /; #2 == 0 -> 0, _ :> #1/#2}] &[a, 0]
0
より多くのアプローチとより広範な議論については、https://mathematica.stackexchange.com/questions/3174/using-patterns-in-pure-functionsをご覧ください。