Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica Mathematica:如何检查函数是否没有参数?_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica Mathematica:如何检查函数是否没有参数?

Wolfram mathematica Mathematica:如何检查函数是否没有参数?,wolfram-mathematica,Wolfram Mathematica,如何检查函数是否没有提供参数 例如,如果我有: f[x_Integer]:=1 f[x_]:=Message[errm::err, x] 我不带参数地调用f: f[] “什么也没发生”,我想强制一个特定的(错误)条件 (背景:我正在为软件包和OO系统类进行MUnit测试。)这是什么 f[x_Integer] := 1 f[x_] := Message[errm::err, x] f[] := Message[errm::err] 作为显式列出零参数可能性的替代方法,您可以 f

如何检查函数是否没有提供参数

例如,如果我有:

  f[x_Integer]:=1
  f[x_]:=Message[errm::err, x]
我不带参数地调用f:

   f[]
“什么也没发生”,我想强制一个特定的(错误)条件

(背景:我正在为软件包和OO系统类进行MUnit测试。)

这是什么

f[x_Integer] := 1
f[x_] := Message[errm::err, x]
f[] := Message[errm::err]

作为显式列出零参数可能性的替代方法,您可以

f[x_Integer] := 1
f[args___] := (Message[errm::err, {args}];$Failed);

它还将捕获几个传递参数的错误情况(假设这是一个错误)。

据我所知,mathematica中的函数与它们的参数“绑定”,即如果定义f(a),f仍然是未定义的。@Gleno mathematica中没有函数(可能除了纯函数和编译函数)。看起来像函数定义的是全局规则。您可能的意思是,对于模式
f[something]
存在一个全局规则并不意味着对于普通
f
存在另一个全局规则-这是正确的。删除了我的答案。。。迟到一分钟:)@belisarius我运气好:)+1。@ndroock1的代码和此处的
Null
都返回错误。(对我来说)这似乎不太合适。即使出现错误,输出也必须有意义。在符号环境中,通常使用技巧,例如
f[]:=“nothing”/;Message[errm::err]
,以使
f[]
同时返回消息并对其自身进行计算。在编程环境中,通常会发出错误消息并返回
$Failed
,如
f[]:=(消息[errm::err];$Failed)
。有时(对于内部函数来说)异常更合适。选择哪一个取决于上下文。