我希望访问Haskell元组中的第3个元素。元组是类型(String,String,Int),我想要Int。我尝试以我在网上看到的方式创建自己的,主要是:
get3rd (_,_,x) = x
*我还尝试过使用类型声明:(String,String,Int) - > Int和为元组创建自定义类型并使用它。
如果我输入的元组全部由整数组成,这是有效的,但是一旦我输入字符串,我就会收到此错误:数据构造函数不在范围内:Mary :: String * Mary是一个任意的字符串,我输入的两个字符串都会出错。任何帮助都可以解决这个问题!
答案 0 :(得分:1)
如果您不需要经常这样做,
let (_,_,x) = someTuple
in doSomething x
或者
doSomething x
where (_,_,x) = someTuple
几乎相当于这个
get3rd (_,_,x) = x
...
doSomething (get3rd someTuple)
但是如果你正在处理嵌套元组之类的东西,它可能会变得混乱