早教吧作业答案频道 -->其他-->
mathematica这样用Alternatives不行吗?abs[x(Integer|Rational|Complex)]:=Norm[x]abs[1+I]和abs[1,2]都不行但是这种模式每一个都是独立的模式,不管别的是否匹配,只要自己匹配上就会应用上不是吗?可是Ma
题目详情
mathematica这样用Alternatives不行吗?
abs[x (_Integer | _Rational | _Complex)] := Norm[x] abs[1+I]和abs[1,2]都不行
但是这种模式每一个都是独立的模式,不管别的是否匹配,只要自己匹配上就会应用上不是吗?
可是MatchQ[x^2,x^(_Real|_Integer)]回答是True啊
abs[x (_Integer | _Rational | _Complex)] := Norm[x] abs[1+I]和abs[1,2]都不行
但是这种模式每一个都是独立的模式,不管别的是否匹配,只要自己匹配上就会应用上不是吗?
可是MatchQ[x^2,x^(_Real|_Integer)]回答是True啊
▼优质解答
答案和解析
那是你没用对,可以如下的方法
abs[x :_Integer | _Rational | _Complex] := Norm[x]
或者
abs[x_Integer | x_Rational | x_Complex] := Norm[x]
至于为何 abs[1,2] 不行,那是因为你定义的模式匹配的是整数 | 有理数 | 复数,当然匹配不了序列,最后的那个匹配正确是没有问题的啊.建议你看一下模式的命名.
abs[x :_Integer | _Rational | _Complex] := Norm[x]
或者
abs[x_Integer | x_Rational | x_Complex] := Norm[x]
至于为何 abs[1,2] 不行,那是因为你定义的模式匹配的是整数 | 有理数 | 复数,当然匹配不了序列,最后的那个匹配正确是没有问题的啊.建议你看一下模式的命名.
看了mathematica这样用A...的网友还看了以下:
一个人在集市上买了一匹马花了800元,转手以840元卖给别人,随后又以850元买回了这匹马,过了不 2020-06-11 …
几匹大马,几匹中马,几匹小马一百马,一百瓦,大马驮三个,中马驮两个,两匹小马驮一片瓦.问:几个匹大 2020-06-15 …
几个强盗分一些布匹每人分6匹就剩5匹每人分7匹就少8匹问强盗几个布匹多少用方程解 2020-06-15 …
哥哥姐姐们1.求下面各圆的面积.(1)r=3dm(2)d=4cm(3)r=4m(4)d=20cm2. 2020-11-01 …
1.求下面各圆的面积.(1)r=3dm(2)d=4cm(3)r=4m(4)d=20cm2.在一片草地 2020-11-01 …
一百匹马,一百个瓦.一匹公马驼3个瓦,一匹母马驼2个瓦,三匹小马驼一个瓦,小马匹数是公马的3倍,问有 2020-11-08 …
一匹大马运三个瓦,一匹中马运二个瓦,三匹小马运一个瓦,问:一百匹马,一百个瓦用多少匹马一次运完瓦? 2020-11-08 …
一百匹马,一百个瓦.一匹公马驼3个瓦,一匹母马驼2个瓦,三匹小马驼一个瓦,小马匹数是公马的3倍,问有 2020-12-09 …
甲乙两人分别有上、中、下三类赛马个一匹,已知甲的各等级马都能胜乙的同等级的马,但乙的上等马可胜甲的中 2020-12-09 …
18匹马,分给3个儿子,分给长子2分之一,次子三分之一,三子九分之一,一匹马死啦,应该怎么分?答案是 2020-12-17 …