Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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
Exception haskell if异常_Exception_Haskell - Fatal编程技术网

Exception haskell if异常

Exception haskell if异常,exception,haskell,Exception,Haskell,我有类似的东西 isLastPermutation (h:t)= catch (nextPermutation (h:t)) (\e-> return True) return False 在某些情况下,nextPermutation抛出异常,如果nextPermutation抛出异常,我希望我的函数isLastPermutation返回true,否则返回false。不要在其他纯Haskell中使用异常进行流控制。使用也许代码>或 < >

我有类似的东西

isLastPermutation (h:t)=
            catch (nextPermutation (h:t)) (\e-> return True)
            return False

在某些情况下,
nextPermutation
抛出异常,如果
nextPermutation
抛出异常,我希望我的函数
isLastPermutation
返回true,否则返回false。

不要在其他纯Haskell中使用异常进行流控制。使用<代码>也许<>代码>或<代码> < <代码> >

什么是<代码> nExtRebug < /代码>类型?考虑返回“<代码> > <代码> >,而不是在函数<代码> NExtRePrime< /代码>中抛出异常。然后它只是一个模式匹配的问题,在
just
Nothing
上,由于缺少
do
,所以无法编译。如果要抛出(并捕获)异常,必须在
catch
中移动
return False
,因此:
catch(nextpermutate(h:t)>>return False)(\\\->return True)
。但是,正如莫格所说,这不是例外的工作,使用<代码>也许,并且不需要<代码> IO < /C> >和<代码> catch < /C> >注意:C++ >代码STD::NExtPyPrimult](< /代码>)返回<代码>布尔O/S>(不例外),以指示排列是否已达到最后版本,尽管C++上下文中的异常可以比Haskell上下文中的异常少。如果您的另一个Haskell函数正在通过异常传递此类信息,则该函数已损坏,应予以修复!我同意其他人的看法:重写
nextpermutat
及其调用的函数,这样它们就不会给出错误。如果您需要帮助,请将他们的代码编辑到您的问题中,我们可以帮助您。