Haskell 哈斯克尔进入元组
我在Haskell中有一个函数定义为(Error是一种数据类型) 我怎样才能到达返回元组,我已经尝试过了Haskell 哈斯克尔进入元组,haskell,error-handling,Haskell,Error Handling,我在Haskell中有一个函数定义为(Error是一种数据类型) 我怎样才能到达返回元组,我已经尝试过了 fst (mixIt 2 2) 但是它给出了一个错误?fst是一个类型为(a,b)->a的函数(我们以更具体的方式使用它,如(Int,Int)->Int),但我们将它应用于具有error(Int,Int)类型的mixit22。这是我们错误的根源 为了修复它,我们需要检查通过模式匹配从mixIt返回的Error值 case mixIt 2 2 of Nice tuple ->
fst (mixIt 2 2)
但是它给出了一个错误?
fst
是一个类型为(a,b)->a
的函数(我们以更具体的方式使用它,如(Int,Int)->Int
),但我们将它应用于具有error(Int,Int)
类型的mixit22
。这是我们错误的根源
为了修复它,我们需要检查通过模式匹配从mixIt
返回的Error
值
case mixIt 2 2 of
Nice tuple -> fst tuple
在有Nice
构造函数的情况下,我们可以显式地进行模式匹配,该构造函数将我们想要的元组作为参数。但是有一个问题,因为mixIt
也可能返回Woops
,这是Error
的另一个构造函数。我们需要单独处理这种情况,否则我们的程序将在运行时失败(一件非常糟糕的事情)
一旦您填写了案例表达式的最后一个分支,您就可以开始了。谢谢您,我真的无法在web上找到关于这一点的任何信息,因为我不确定要搜索什么解决方案。再次感谢,这是一个很大的帮助!
case mixIt 2 2 of
Nice tuple -> fst tuple
case mixIt 2 2 of
Nice tuple -> fst tuple
Whoops -> ... some Haskell code to produce another tuple ...