3

我需要定義一個純函數,它接受兩個參數並返回它們的商。如果除數是0那麼我想返回0純函數中的模式匹配

如果我有一個名爲函數,那麼我會做

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

如何做同樣的圖案在一個純函數#1/#2 &的參數匹配?

回答

2

Switch可能是有用的,例如:

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

{3,4,NULL}

4

嘗試像

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

您的純函數。

+0

謝謝。看起來我不能在純函數中進行模式匹配,對吧?我的例子是人爲設計的。是的,我可以檢查第二個參數是否爲零。我一直在尋找一種模式匹配的方法。 – akonsu

+0

'如果[MatchQ [#,pattern],...]&'...或者您可能想要查看'Switch' – agentp

+0

@agentp謝謝,我使用了'Switch',請發表評論作爲回答 – akonsu