Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.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
Haskell模式匹配do表达式编译器警告_Haskell - Fatal编程技术网

Haskell模式匹配do表达式编译器警告

Haskell模式匹配do表达式编译器警告,haskell,Haskell,以下代码将在运行时失败(仅) do {(x:xs) <- return "";return x} do{(x:xs)改用case表达式: do case "" of [] -> undefined -- or whatever else you want to do (x:xs) -> return x 希望有帮助。(x:xs)对于您关于编译器警告的问题,确实没有选项。-fwarn complete patterns只检查函数

以下代码将在运行时失败(仅)

do {(x:xs) <- return "";return x}

do{(x:xs)改用
case
表达式:

do
    case "" of
        []     -> undefined -- or whatever else you want to do
        (x:xs) -> return x

希望有帮助。

(x:xs)对于您关于编译器警告的问题,确实没有选项。
-fwarn complete patterns
只检查函数参数,而不是
类似场景的左侧:
foo=let Just x=Nothing in x
。这也只会在运行时失败。您期望什么行为?确定模式是否s正确与否在一般情况下是不可判定的。此外,您只能指定一个模式,因此对“不完整的模式”发出警告没有任何意义。您是否希望在
中每次使用模式时都收到这样的警告一个相当于-fwarn的不完整模式,它与DO一起工作。如果不可能,有人能帮助我理解为什么不可能(例如?)。谢谢,这就是它需要做的,以便在运行时不会失败。我仍然对编译时没有警告感到惊讶。