3

2 つの引数を取り、それらの商を返す純粋な関数を定義する必要があります。除数が の場合は0を返し0ます。

名前付き関数があれば、私はそうします

div[_, 0]   := 0
div[x_, y_] := x / y

純粋な関数の引数に対して同じ種類のパターン マッチングを行う方法は#1 / #2 &?

4

3 に答える 3

4

次のようなものを試してください

If[#2 == 0, 0, #1/#2] &

あなたの純粋な機能のために。

于 2015-06-12T17:39:25.417 に答える
2

Switchたとえば、次のように便利です。

Switch[ # ,
       _String , StringLength[#] ,
       _List , Length[#] , 
       __ , Null ] & /@ { "abc", {1, 2, 3, 4}, Pi}

{3, 4, ヌル}

于 2015-06-15T13:27:46.350 に答える
1

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をご覧ください。

于 2016-05-01T18:41:56.200 に答える