Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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
Sml 警告:呼叫Polyqual_Sml_Smlnj - Fatal编程技术网

Sml 警告:呼叫Polyqual

Sml 警告:呼叫Polyqual,sml,smlnj,Sml,Smlnj,谁能解释一下,这个警告是什么意思 stdIn:18.35 Warning: calling polyEqual 为什么我在下面的陈述中有“a”而不是“a”: val alreadyVisited = fn : ''a * ''a list -> bool 这是我的职责: fun alreadyVisited(v, []) = false | alreadyVisited(v, x::xs) = if(x=v) then true else alreadyVisi

谁能解释一下,这个警告是什么意思

stdIn:18.35 Warning: calling polyEqual
为什么我在下面的陈述中有“a”而不是“a”:

val alreadyVisited = fn : ''a * ''a list -> bool
这是我的职责:

fun alreadyVisited(v, []) = false
    | alreadyVisited(v, x::xs) = if(x=v) then true
        else alreadyVisited(v, xs);
'a
表示“任何类型”,而
'a
表示“任何可以进行平等比较的类型”“。由于您的
函数已经使用
=
x
v
进行了比较,
x
v
需要有一个支持对它们进行相等比较的类型,因此您得到的类型是
''a

该警告意味着您正在比较两个多态类型的值以获得相等性

为什么会产生警告?因为它比比较两个已知类型的相等值效率低

你如何摆脱这个警告?通过将函数更改为仅使用特定类型而不是任何类型


你应该关心这个警告吗?可能不会。在大多数情况下,我会认为拥有一个可以适用于任何类型的函数比拥有尽可能高效的代码更重要,所以我会忽略这个警告。

我在可能简化的情况下得到同样的警告:
fun some_fun((*stuff*)=[]