访问三元组中的第三个元素



我希望访问Haskell元组中的第3个元素。元组的类型是(字符串,字符串,Int(,我想要Int。我尝试以我在网上看到的方式创建自己的方式,主要是:

get3rd (_,_,x) = x

*我还尝试使用类型声明:(字符串,字符串,整数(-> Int,并为元组创建自定义类型并使用它。

如果我输入的元组全部由整数组成,这有效,但是一旦我放入字符串,我就会收到此错误: 数据构造函数不在范围内: 玛丽 :: 字符串*玛丽是一个任意字符串,我输入的两个字符串都出错。任何帮助都将有助于解决这个问题!

如果你不需要经常这样做,这个

let (_,_,x) = someTuple
in doSomething x

或者这个

doSomething x
where (_,_,x) = someTuple

几乎等同于这个

get3rd (_,_,x) = x
...
doSomething (get3rd someTuple)

但是如果你正在处理像嵌套元组这样的东西,它可能会变得混乱。

最新更新